From da2b6dd5c647d95a2e05f6c6cc4791796ef0b3ee Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Mon, 16 Feb 2026 19:43:10 -0800 Subject: [PATCH] Make code less brittle for when \McL changes Signed-off-by: Danila Fedorin --- Lattice/Builder.agda | 46 +++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/Lattice/Builder.agda b/Lattice/Builder.agda index ed4ccf9..bea2a8a 100644 --- a/Lattice/Builder.agda +++ b/Lattice/Builder.agda @@ -615,37 +615,43 @@ record Graph : Set where Elem : Set Elem = Ξ£ Node Ξ» n β†’ (proj₁ (𝓛 n)) + LatticeT : Node β†’ Set + LatticeT n = proj₁ (𝓛 n) + + FHL : (n : Node) β†’ FiniteHeightLattice (LatticeT n) + FHL n = projβ‚‚ (𝓛 n) + data _β‰ˆ_ : Elem β†’ Elem β†’ Set where - β‰ˆ-lift : βˆ€ {n : Node} {l₁ lβ‚‚ : proj₁ (𝓛 n)} β†’ - FiniteHeightLattice._β‰ˆ_ (projβ‚‚ (𝓛 n)) l₁ lβ‚‚ β†’ + β‰ˆ-lift : βˆ€ {n : Node} {l₁ lβ‚‚ : LatticeT n} β†’ + FiniteHeightLattice._β‰ˆ_ (FHL n) l₁ lβ‚‚ β†’ (n , l₁) β‰ˆ (n , lβ‚‚) β‰ˆ-refl : βˆ€ {e : Elem} β†’ e β‰ˆ e - β‰ˆ-refl {n , l} = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-refl (projβ‚‚ (𝓛 n))) + β‰ˆ-refl {n , l} = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-refl (FHL n)) β‰ˆ-sym : βˆ€ {e₁ eβ‚‚ : Elem} β†’ e₁ β‰ˆ eβ‚‚ β†’ eβ‚‚ β‰ˆ e₁ - β‰ˆ-sym {n₁ , l₁} (β‰ˆ-lift lβ‚β‰ˆlβ‚‚) = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-sym (projβ‚‚ (𝓛 n₁)) lβ‚β‰ˆlβ‚‚) + β‰ˆ-sym {n₁ , l₁} (β‰ˆ-lift lβ‚β‰ˆlβ‚‚) = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-sym (FHL n₁) lβ‚β‰ˆlβ‚‚) β‰ˆ-trans : βˆ€ {e₁ eβ‚‚ e₃ : Elem} β†’ e₁ β‰ˆ eβ‚‚ β†’ eβ‚‚ β‰ˆ e₃ β†’ e₁ β‰ˆ e₃ - β‰ˆ-trans {n₁ , l₁} (β‰ˆ-lift lβ‚β‰ˆlβ‚‚) (β‰ˆ-lift lβ‚‚β‰ˆl₃) = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-trans (projβ‚‚ (𝓛 n₁)) lβ‚β‰ˆlβ‚‚ lβ‚‚β‰ˆl₃) + β‰ˆ-trans {n₁ , l₁} (β‰ˆ-lift lβ‚β‰ˆlβ‚‚) (β‰ˆ-lift lβ‚‚β‰ˆl₃) = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-trans (FHL n₁) lβ‚β‰ˆlβ‚‚ lβ‚‚β‰ˆl₃) _βŠ”_ : Elem β†’ Elem β†’ Elem _βŠ”_ e₁ eβ‚‚ using n₁ ← proj₁ e₁ using nβ‚‚ ← proj₁ eβ‚‚ using n' ← n₁ βŠ”α΅‡ nβ‚‚ = (n' , select n' e₁ eβ‚‚) where - select : βˆ€ n' e₁ eβ‚‚ β†’ proj₁ (𝓛 n') + select : βˆ€ n' e₁ eβ‚‚ β†’ LatticeT n' select n' (n₁ , l₁) (nβ‚‚ , lβ‚‚) with n' β‰Ÿ n₁ | n' β‰Ÿ nβ‚‚ - ... | yes refl | yes refl = FiniteHeightLattice._βŠ”_ (projβ‚‚ (𝓛 n')) l₁ lβ‚‚ + ... | yes refl | yes refl = FiniteHeightLattice._βŠ”_ (FHL n') l₁ lβ‚‚ ... | yes refl | _ = l₁ ... | _ | yes refl = lβ‚‚ - ... | no _ | no _ = FiniteHeightLattice.βŠ₯ (projβ‚‚ (𝓛 n')) + ... | no _ | no _ = FiniteHeightLattice.βŠ₯ (FHL n') βŠ”-idemp : βˆ€ e β†’ (e βŠ” e) β‰ˆ e βŠ”-idemp (n , l) rewrite βŠ”α΅‡-idemp n with n β‰Ÿ n - ... | yes refl = β‰ˆ-lift (FiniteHeightLattice.βŠ”-idemp (projβ‚‚ (𝓛 n)) l) + ... | yes refl = β‰ˆ-lift (FiniteHeightLattice.βŠ”-idemp (FHL n) l) ... | no nβ‰’n = βŠ₯-elim (nβ‰’n refl) βŠ”-comm : βˆ€ (e₁ eβ‚‚ : Elem) β†’ (e₁ βŠ” eβ‚‚) β‰ˆ (eβ‚‚ βŠ” e₁) @@ -653,10 +659,10 @@ record Graph : Set where rewrite βŠ”α΅‡-comm n₁ nβ‚‚ with n ← nβ‚‚ βŠ”α΅‡ n₁ with n β‰Ÿ n₁ | n β‰Ÿ nβ‚‚ - ... | yes refl | yes refl = β‰ˆ-lift (FiniteHeightLattice.βŠ”-comm (projβ‚‚ (𝓛 n)) l₁ lβ‚‚) - ... | no _ | yes refl = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-refl (projβ‚‚ (𝓛 n))) - ... | yes refl | no _ = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-refl (projβ‚‚ (𝓛 n))) - ... | no _ | no _ = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-refl (projβ‚‚ (𝓛 n))) + ... | yes refl | yes refl = β‰ˆ-lift (FiniteHeightLattice.βŠ”-comm (FHL n) l₁ lβ‚‚) + ... | no _ | yes refl = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-refl (FHL n)) + ... | yes refl | no _ = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-refl (FHL n)) + ... | no _ | no _ = β‰ˆ-lift (FiniteHeightLattice.β‰ˆ-refl (FHL n)) private scary : βˆ€ (n₁ nβ‚‚ : Node) β†’ (p : n₁ ≑ nβ‚‚) β†’ (n₁ β‰Ÿ nβ‚‚) ≑ subst (Ξ» n β†’ Dec (n₁ ≑ n)) p (yes refl) @@ -665,10 +671,10 @@ record Graph : Set where ... | no n₁≒nβ‚‚ = βŠ₯-elim (n₁≒nβ‚‚ refl) payloadΛ‘ : βˆ€ e₁ eβ‚‚ e₃ β†’ let n = proj₁ ((e₁ βŠ” eβ‚‚) βŠ” e₃) - in proj₁ (𝓛 n) + in LatticeT n payloadΛ‘ (n₁ , l₁) (nβ‚‚ , lβ‚‚) (n₃ , l₃) with n ← (n₁ βŠ”α΅‡ nβ‚‚) βŠ”α΅‡ n₃ - using _βŠ”βΏ_ ← FiniteHeightLattice._βŠ”_ (projβ‚‚ (𝓛 n)) + using _βŠ”βΏ_ ← FiniteHeightLattice._βŠ”_ (FHL n) with n β‰Ÿ n₁ | n β‰Ÿ nβ‚‚ | n β‰Ÿ n₃ ... | yes refl | yes refl | yes refl = (l₁ βŠ”βΏ lβ‚‚) βŠ”βΏ l₃ ... | yes refl | yes refl | no _ = l₁ βŠ”βΏ lβ‚‚ @@ -677,13 +683,13 @@ record Graph : Set where ... | no _ | yes refl | yes refl = lβ‚‚ βŠ”βΏ l₃ ... | no _ | yes refl | no _ = lβ‚‚ ... | no _ | no _ | yes refl = l₃ - ... | no _ | no _ | no _ = FiniteHeightLattice.βŠ₯ (projβ‚‚ (𝓛 n)) + ... | no _ | no _ | no _ = FiniteHeightLattice.βŠ₯ (FHL n) payloadΚ³ : βˆ€ e₁ eβ‚‚ e₃ β†’ let n = proj₁ (e₁ βŠ” (eβ‚‚ βŠ” e₃)) - in proj₁ (𝓛 n) + in LatticeT n payloadΚ³ (n₁ , l₁) (nβ‚‚ , lβ‚‚) (n₃ , l₃) with n ← n₁ βŠ”α΅‡ (nβ‚‚ βŠ”α΅‡ n₃) - using _βŠ”βΏ_ ← FiniteHeightLattice._βŠ”_ (projβ‚‚ (𝓛 n)) + using _βŠ”βΏ_ ← FiniteHeightLattice._βŠ”_ (FHL n) with n β‰Ÿ n₁ | n β‰Ÿ nβ‚‚ | n β‰Ÿ n₃ ... | yes refl | yes refl | yes refl = l₁ βŠ”βΏ (lβ‚‚ βŠ”βΏ l₃) ... | yes refl | yes refl | no _ = l₁ βŠ”βΏ lβ‚‚ @@ -692,7 +698,7 @@ record Graph : Set where ... | no _ | yes refl | yes refl = lβ‚‚ βŠ”βΏ l₃ ... | no _ | yes refl | no _ = lβ‚‚ ... | no _ | no _ | yes refl = l₃ - ... | no _ | no _ | no _ = FiniteHeightLattice.βŠ₯ (projβ‚‚ (𝓛 n)) + ... | no _ | no _ | no _ = FiniteHeightLattice.βŠ₯ (FHL n) βŠ”α΅‡-prop : βˆ€ n₁ nβ‚‚ n₃ β†’ (n₁ βŠ”α΅‡ nβ‚‚) βŠ”α΅‡ n₃ ≑ n₁ β†’ (n₁ βŠ”α΅‡ nβ‚‚ ≑ n₁) Γ— (n₁ βŠ”α΅‡ n₃ ≑ n₁) @@ -865,7 +871,7 @@ record Graph : Set where rewrite trans (sym pΛ‘ ) pΚ³ with nΚ³ β‰Ÿ n₁ | nΚ³ β‰Ÿ nβ‚‚ | nΚ³ β‰Ÿ n₃ ... | yes refl | yes refl | yes refl = - let l-assoc = FiniteHeightLattice.βŠ”-assoc (projβ‚‚ (𝓛 n₁)) l₁ lβ‚‚ l₃ + let l-assoc = FiniteHeightLattice.βŠ”-assoc (FHL n₁) l₁ lβ‚‚ l₃ in β‰ˆ-trans final₁ (β‰ˆ-trans (β‰ˆ-lift l-assoc) (β‰ˆ-sym finalβ‚‚)) ... | yes refl | yes refl | no _ = β‰ˆ-trans final₁ (β‰ˆ-sym finalβ‚‚) ... | yes refl | no _ | yes refl = β‰ˆ-trans final₁ (β‰ˆ-sym finalβ‚‚)