Reduction to co-pairings of guarded terms
Lax149335.GuardedReduction · concepts/Lax149335/GuardedReduction.lean · lax-149335
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Lemma 6.4. In the proof of the conjugacy rule of Lemma 6.1, let be the length of . Without loss of generality, and are co-pairings
Concept map
Lean source view on GitHub
| 1 | import Lax149335.GuardedTerms |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Reduction to co-pairings of guarded terms |
| 6 | type: lemma |
| 7 | --- |
| 8 | **Lemma 6.4.** In the proof of the conjugacy rule of Lemma 6.1, let be the length |
| 9 | of . Without loss of generality, and are co-pairings |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | # Formalization notes |
| 16 | |
| 17 | The "without loss of generality" is formalised as a reduction: if the conjugacy rule |
| 18 | |
| 19 | holds for all such co-pairings, then it holds for all simple rational |
| 20 | terms . The proof of Lemma 6.1 is an induction on the nesting depth of |
| 21 | lists in the input type, so the reduction is stated with the additional guarantee that the |
| 22 | co-pairings have an input type whose nesting depth is at most that of . The assumption |
| 23 | that is a finite alphabet is not needed. |
| 24 | -/ |
| 25 | |
| 26 | namespace Lax149335.GuardedReduction |
| 27 | |
| 28 | open Lax149335.Types Lax149335.Terms Lax149335.DerivedTerms Lax149335.DerivedTerms.Term |
| 29 | Lax149335.EquationalTheory Lax149335.SimpleRationalWithinSyntax Lax149335.GuardedTerms |
| 30 | |
| 31 | /-- **Lemma 6.4.** The conjugacy rule for simple rational terms follows from the conjugacy |
| 32 | rule for co-pairings of `k`-guarded terms, where `k > 0` is the length of `w`. -/ |
| 33 | axiom wlog_kguarded {B : Ty} (w : Value B⋆) (hw : 0 < valLength w) {A : Ty} |
| 34 | (H : ∀ (A₀ : Ty) (As : List Ty) (f₀ g₀ : Term A₀ B⋆) (fs gs : Cases B⋆ As), |
| 35 | Ty.listDepth (sumTyOf A₀ As) ≤ Ty.listDepth A → |
| 36 | KGuarded (valLength w) B f₀ → KGuarded (valLength w) B g₀ → |
| 37 | fs.All (fun _ f => KGuarded (valLength w) B f) → |
| 38 | gs.All (fun _ g => KGuarded (valLength w) B g) → |
| 39 | dotR (copair f₀ fs) w ≡ₜ dotL w (copair g₀ gs) → |
| 40 | dotR (homT (copair f₀ fs)) w ≡ₜ dotL w (homT (copair g₀ gs))) |
| 41 | (f g : Term A B⋆) (hf : IsSimple B f) (hg : IsSimple B g) |
| 42 | (hfg : dotR f w ≡ₜ dotL w g) : |
| 43 | dotR (homT f) w ≡ₜ dotL w (homT g) |
| 44 | |
| 45 | end Lax149335.GuardedReduction |
| 46 |
Formalization notes
The "without loss of generality" is formalised as a reduction: if the conjugacy rule holds for all such co-pairings, then it holds for all simple rational terms . The proof of Lemma 6.1 is an induction on the nesting depth of lists in the input type, so the reduction is stated with the additional guarantee that the co-pairings have an input type whose nesting depth is at most that of . The assumption that is a finite alphabet is not needed.
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments