shingarov / MachineArithmetic

A mathematical foundation for Smalltalk-25
MIT License
17 stars 6 forks source link

Connect Decidable and Shallow refinements #174

Open shingarov opened 10 months ago

shingarov commented 10 months ago

In the current codebase, the main exercised path to create a Horn query is by parsing Horn or Sprite concrete grammar, so that Smalltalk predicates are wrapped in DecidablePredicates over Smalltalk source strings; those are compiled during an early stage of Horn-solving. This approach was adopted for initial compatibility with LiquidHaskell. As the code matures, we should move toward actual Smalltalk executable functions, starting from something along the lines of ShallowRefinement.

shingarov commented 4 months ago

The proper way of doing this, is by integrating with something like the Type Inferencer in Francisco Garau's dissertation "Concrete Type Inference in Squeak". Right now, many examples (esp. the tests in L₅ and L₆) already execute Smalltalk code on "pure formulæ" (aka Cardano–Tartaglia "cose"), resulting in instances of EMessageSend which are later resolved in #smt2: and similar places.