Make FiniteHeightLattice extend Lattice and derive Top/Bot

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-25 18:42:28 -05:00
parent acef0f202b
commit cbad43efdc
11 changed files with 61 additions and 102 deletions

View File

@@ -32,7 +32,7 @@ private lemma iterOfFun_funOfIter : ∀ {n : ℕ} (ip : IterProd B PUnit n),
rw [show funOfIter ip = Fin.cons ip.1 (funOfIter ip.2) from rfl]
simp [Fin.cons_zero, Fin.tail_cons, iterOfFun_funOfIter ip.2]
variable [Lattice B]
variable [FiniteHeightLattice B]
private lemma funOfIter_mono {n : ℕ} :
Monotone (funOfIter : IterProd B PUnit n → (Fin n → B)) := by
@@ -55,7 +55,7 @@ private lemma iterOfFun_mono {n : ℕ} :
intro f g h
exact Prod.le_def.mpr ⟨h 0, ih fun i => h i.succ⟩
instance instFiniteHeight {n : ℕ} [FiniteHeightLattice B] :
instance instFiniteHeight {n : ℕ} :
FiniteHeightLattice (Fin n → B) :=
FiniteHeightLattice.transport funOfIter iterOfFun
funOfIter_mono iterOfFun_mono iterOfFun_funOfIter funOfIter_iterOfFun