newish musings
blog logic puzzles piward coding
github profile
β•­ 𝟘𝟞· logic I now have a somewhat general "pigeonhole solver" which, given a set of equations of the form x_iΒ¬=x_j and for each x_i, one equation of the form x_i∈{c_j
β”Š c_(j+1) c_(j+2) ... c_(j+k)}. This can directly be solved with a search, but I've been trying to avoid that in my pretense toward symbolic manipulation. In the end,
β”Š I'm not sure my approach is all that different than a search - if I can write my approach up in a sensible form, I'll post a doc someplace and hope to learn more.
β”Š
β”Š πŸšπŸ™Β· coding I updated my color text routines that I use in all my Python tools to proceess faster when read into Emacs. One day, I may create an IDE for my β€˜neo-retro’
β”Š logic-puzzle computing environment, but Emacs is still the best tool for me.
β”Š
β”Š 𝟚𝟚· coding While I use Unicode extensively and appreciate its near universal adoption and support, I object to any description of it as a "character set". It is a partial
β”Š encoding for semantically based typesetting of all human-readable text that includes representations for historic character sets. Ideally, a "character set" provides
𝔻 β”Š an abstract, finite set of symbols for computation and a visual representation that allows human beings to readily identify symbols in a sequence - a simple alphabet.
𝕖 β”Š If we remove codepoints that are control values (modifiers and typesetting indicators) and, for groups of characters which are (subjectively) visually similar,
𝕔 β”Š discard all but one, we are left with a workable character set. But it's a major bonus if human beings can naturally associate meaning with sequences to form a human
𝕖 β”Š readable language. This character set requires knowledge of every alphabet included in Unicode and fluency in at least one language that uses each alphabet. I encode
π•ž β”Š formal languages and strings using my own (still evolving) ”Zy Logical Character Set" or "Zylch" (the "zy" is vestigial, but still makes for entertaining acronyms).
𝕓 β”Š It's a single byte encoding starting with the digits 0β‹―9, followed by the 26 uppercase then 26 lowercase letters of English. Then a bunch of symbols that change from
𝕖 β”Š week to week...
𝕣 β”Š
β”Š 𝟚𝟚· coding I'm using β€˜βŠ™β€˜ for dot product and β€˜βŠ—β€™ for cross product. My preprocessor translates these from binary operators into calls to β€˜dot’ and β€˜cross’, which are
β”Š native in GLSL and implemented in Python to work on number sequences of equal length (dot) or only 3-tuples of numbers (cross).
β”Š
β”Š πŸšπŸ›Β· logic I've added support for the Cartesian Product, represented by β€˜Γ—β€™ in Unicode (U+D7). What I call β€œtuple constrained quantification” (βˆ€βŸ¨x y⟩∈ZΓ—Z) is accepted in
β”Š βŸͺSapphire⟫ as well as set exponentiation by an integer (Z^4 β–· ZΓ—ZΓ—ZΓ—Z) ({1β‹―3}^3 β–· {1β‹―3}Γ—{1β‹―3}Γ—{1β‹―3}). Finite expressions can be evaluated in calculator fashion (⟨1 2
β”Š 3⟩∈{1β‹―3}^3 β–· βœ”) (βˆ€βŸ¨a b⟩∈{1β‹―3}^2 a>3 β‡’ a+b>4 β–· βœ”) and can also be symbolically manipulated by βŸͺAg⟫, aka β€œThe Silver Solver”. I've updated my Sudoku rules to use these
β”Š new features
β”Š
β•° 𝟚𝟜· I finally go around to watching Jordan Peele's documentary "Get Out" the other night. I have to say, the re-enactments were grisly, but well done.