- Spa.Showable: port of Showable.agda (quoted strings, map format) for output parity - Spa.Analysis.Utils: eval_combine₂ - Spa.Lattice.AboveBelow.le_cases: order of the flat lattice by cases - Spa.Analysis.Sign / Spa.Analysis.Constant: the four monotonicity POSTULATES from the Agda files are now proved theorems (via le_cases); interpretations, evaluator validity, analyze_correct per analysis - Main + lake exe spa: runs both analyses on the Agda test program; constant analysis folds unknown=0, sign analysis gives unknown=⊤ Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
16 lines
466 B
Lean4
16 lines
466 B
Lean4
/-
|
|
Port of `Analysis/Utils.agda`. The `≼ᴼ-trans` module parameter lifts into the
|
|
`Preorder` instance.
|
|
-/
|
|
import Spa.Lattice
|
|
|
|
namespace Spa
|
|
|
|
/-- Agda: `eval-combine₂`. -/
|
|
theorem eval_combine₂ {O : Type*} [Preorder O] {combine : O → O → O}
|
|
(hmono : Monotone₂ combine) {o₁ o₂ o₃ o₄ : O}
|
|
(h₁ : o₁ ≤ o₃) (h₂ : o₂ ≤ o₄) : combine o₁ o₂ ≤ combine o₃ o₄ :=
|
|
le_trans (hmono.1 o₂ h₁) (hmono.2 o₃ h₂)
|
|
|
|
end Spa
|