Reduction to nonempty summands
Lax149335.NonemptyReduction · concepts/Lax149335/NonemptyReduction.lean · lax-149335
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Lemma 6.5. In the situation of Lemma 6.4, one can further assume without loss of generality that all the terms and are nonempty.
Concept map
Evidence
Each proof establishes this claim relative to its assumptions.
Lean source view on GitHub
| 1 | import Lax149335.GuardedTerms |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Reduction to nonempty summands |
| 6 | type: lemma |
| 7 | --- |
| 8 | **Lemma 6.5.** In the situation of Lemma 6.4, one can further assume without loss of |
| 9 | generality that all the terms and are nonempty. |
| 10 | |
| 11 | # Formalization notes |
| 12 | |
| 13 | As for Lemma 6.4, the statement is a reduction: if the conjugacy rule holds for co-pairings |
| 14 | of -guarded nonempty terms whose input type has list nesting depth at most , then it |
| 15 | holds for all co-pairings of -guarded terms whose input type has list nesting depth at |
| 16 | most . The assumption that is a finite alphabet is not needed. |
| 17 | -/ |
| 18 | |
| 19 | namespace Lax149335.NonemptyReduction |
| 20 | |
| 21 | open Lax149335.Types Lax149335.Terms Lax149335.DerivedTerms Lax149335.DerivedTerms.Term |
| 22 | Lax149335.EquationalTheory Lax149335.SimpleRationalWithinSyntax Lax149335.GuardedTerms |
| 23 | |
| 24 | /-- **Lemma 6.5.** The conjugacy rule for co-pairings of `k`-guarded terms follows from the |
| 25 | conjugacy rule for co-pairings of `k`-guarded nonempty terms. -/ |
| 26 | axiom wlog_nonempty {B : Ty} (w : Value B⋆) (hw : 0 < valLength w) (D : ℕ) |
| 27 | (H : ∀ (A₀ : Ty) (As : List Ty) (f₀ g₀ : Term A₀ B⋆) (fs gs : Cases B⋆ As), |
| 28 | Ty.listDepth (sumTyOf A₀ As) ≤ D → |
| 29 | KGuarded (valLength w) B f₀ → KGuarded (valLength w) B g₀ → |
| 30 | fs.All (fun _ f => KGuarded (valLength w) B f) → |
| 31 | gs.All (fun _ g => KGuarded (valLength w) B g) → |
| 32 | NonemptyOutput f₀ → NonemptyOutput g₀ → |
| 33 | fs.All (fun _ f => NonemptyOutput f) → gs.All (fun _ g => NonemptyOutput g) → |
| 34 | dotR (copair f₀ fs) w ≡ₜ dotL w (copair g₀ gs) → |
| 35 | dotR (homT (copair f₀ fs)) w ≡ₜ dotL w (homT (copair g₀ gs))) |
| 36 | (A₀ : Ty) (As : List Ty) (f₀ g₀ : Term A₀ B⋆) (fs gs : Cases B⋆ As) |
| 37 | (hD : Ty.listDepth (sumTyOf A₀ As) ≤ D) |
| 38 | (hf₀ : KGuarded (valLength w) B f₀) (hg₀ : KGuarded (valLength w) B g₀) |
| 39 | (hfs : fs.All (fun _ f => KGuarded (valLength w) B f)) |
| 40 | (hgs : gs.All (fun _ g => KGuarded (valLength w) B g)) |
| 41 | (hfg : dotR (copair f₀ fs) w ≡ₜ dotL w (copair g₀ gs)) : |
| 42 | dotR (homT (copair f₀ fs)) w ≡ₜ dotL w (homT (copair g₀ gs)) |
| 43 | |
| 44 | end Lax149335.NonemptyReduction |
| 45 |
Formalization notes
As for Lemma 6.4, the statement is a reduction: if the conjugacy rule holds for co-pairings of -guarded nonempty terms whose input type has list nesting depth at most , then it holds for all co-pairings of -guarded terms whose input type has list nesting depth at most . 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