Step
*
1
2
1
1
of Lemma
lexico_well_fnd
1. [T] : Type
2. [R] : T ⟶ T ⟶ ℙ
3. WellFnd{i}(T;a,b.R[a;b])
4. m : ℤ
5. [%2] : 0 < m
6. lexico(T; a,b.R[a;b]) ∈ (T List) ⟶ (T List) ⟶ ℙ
7. WellFnd{i}({L:T List| ||L|| = (m - 1) ∈ ℕ} ;as,bs.as lexico(T; a,b.R[a;b]) bs)
8. WellFnd{i}(T × {L:T List| ||L|| = (m - 1) ∈ ℕ} ;p1,p2.let a1,b1 = p1
in let a2,b2 = p2
in R[a1;a2]
∨ ((a1 = a2 ∈ T) ∧ (b1 lexico(T; a,b.R[a;b]) b2)))
⊢ WellFnd{i}({L:T List| ||L|| = m ∈ ℕ} ;as,bs.as lexico(T; a,b.R[a;b]) bs)
BY
{ (InstLemma `inv_image_ind_a` [⌜T × {L:T List| ||L|| = (m - 1) ∈ ℕ} ⌝;⌜λ2p1 p2.let a1,b1 = p1
in let a2,b2 = p2
in R[a1;a2]
∨ ((a1 = a2 ∈ T)
∧ (b1 lexico(T; a,b.R[a;b]) b2))⌝
;⌜{L:T List| ||L|| = m ∈ ℕ} ⌝;⌜λ2L.<hd(L), tl(L)>⌝]⋅
THENA Auto
) }
1
1. [T] : Type
2. [R] : T ⟶ T ⟶ ℙ
3. WellFnd{i}(T;a,b.R[a;b])
4. m : ℤ
5. [%2] : 0 < m
6. lexico(T; a,b.R[a;b]) ∈ (T List) ⟶ (T List) ⟶ ℙ
7. WellFnd{i}({L:T List| ||L|| = (m - 1) ∈ ℕ} ;as,bs.as lexico(T; a,b.R[a;b]) bs)
8. WellFnd{i}(T × {L:T List| ||L|| = (m - 1) ∈ ℕ} ;p1,p2.let a1,b1 = p1
in let a2,b2 = p2
in R[a1;a2]
∨ ((a1 = a2 ∈ T) ∧ (b1 lexico(T; a,b.R[a;b]) b2)))
9. WellFnd{i}({L:T List| ||L|| = m ∈ ℕ} ;x,y.let a1,b1 = <hd(x), tl(x)>
in let a2,b2 = <hd(y), tl(y)>
in R[a1;a2] ∨ ((a1 = a2 ∈ T) ∧ (b1 lexico(T; a,b.R[a;b]) b2)))
⊢ WellFnd{i}({L:T List| ||L|| = m ∈ ℕ} ;as,bs.as lexico(T; a,b.R[a;b]) bs)
Latex:
Latex:
1. [T] : Type
2. [R] : T {}\mrightarrow{} T {}\mrightarrow{} \mBbbP{}
3. WellFnd\{i\}(T;a,b.R[a;b])
4. m : \mBbbZ{}
5. [\%2] : 0 < m
6. lexico(T; a,b.R[a;b]) \mmember{} (T List) {}\mrightarrow{} (T List) {}\mrightarrow{} \mBbbP{}
7. WellFnd\{i\}(\{L:T List| ||L|| = (m - 1)\} ;as,bs.as lexico(T; a,b.R[a;b]) bs)
8. WellFnd\{i\}(T \mtimes{} \{L:T List| ||L|| = (m - 1)\} ;p1,p2.let a1,b1 = p1
in let a2,b2 = p2
in R[a1;a2]
\mvee{} ((a1 = a2)
\mwedge{} (b1 lexico(T; a,b.R[a;b]) b2)))
\mvdash{} WellFnd\{i\}(\{L:T List| ||L|| = m\} ;as,bs.as lexico(T; a,b.R[a;b]) bs)
By
Latex:
(InstLemma `inv\_image\_ind\_a` [\mkleeneopen{}T \mtimes{} \{L:T List| ||L|| = (m - 1)\} \mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}p1 p2.let a1,b1 = p1
in let a2,b2 = p2
in R[a1;a2]
\mvee{} ((a1 = a2)
\mwedge{} (b1
lexico(T;
a,b.R
[a;b]
)
b2))\mkleeneclose{};
\mkleeneopen{}\{L:T List| ||L|| = m\} \mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}L.<hd(L), tl(L)>\mkleeneclose{}]\mcdot{}
THENA Auto
)
Home
Index