Step
*
of Lemma
list_match-aux-cons
∀[A,B:Type]. ∀[R:A ⟶ B ⟶ ℙ].
((∀a:A. ∀b:B. SqStable(R[a;b]))
⇒ (∀bs:B List. ∀u:A. ∀v:A List. ∀used:ℤ List.
(list-match-aux([u / v];bs;used;a,b.R[a;b])
⇐⇒ ∃j:ℕ||bs||. ((¬↑j ∈b used) ∧ R[u;bs[j]] ∧ list-match-aux(v;bs;[j / used];a,b.R[a;b])))))
BY
{ (Intros THEN (Assert ∀j:ℤ. (j ∈b used ∈ 𝔹) BY Auto)) }
1
1. [A] : Type
2. [B] : Type
3. [R] : A ⟶ B ⟶ ℙ
4. ∀a:A. ∀b:B. SqStable(R[a;b])
5. bs : B List
6. u : A
7. v : A List
8. used : ℤ List
9. ∀j:ℤ. (j ∈b used ∈ 𝔹)
⊢ list-match-aux([u / v];bs;used;a,b.R[a;b])
⇐⇒ ∃j:ℕ||bs||. ((¬↑j ∈b used) ∧ R[u;bs[j]] ∧ list-match-aux(v;bs;[j / used];a,b.R[a;b]))
Latex:
Latex:
\mforall{}[A,B:Type]. \mforall{}[R:A {}\mrightarrow{} B {}\mrightarrow{} \mBbbP{}].
((\mforall{}a:A. \mforall{}b:B. SqStable(R[a;b]))
{}\mRightarrow{} (\mforall{}bs:B List. \mforall{}u:A. \mforall{}v:A List. \mforall{}used:\mBbbZ{} List.
(list-match-aux([u / v];bs;used;a,b.R[a;b])
\mLeftarrow{}{}\mRightarrow{} \mexists{}j:\mBbbN{}||bs||. ((\mneg{}\muparrow{}j \mmember{}\msubb{} used) \mwedge{} R[u;bs[j]] \mwedge{} list-match-aux(v;bs;[j / used];a,b.R[a;b])))))
By
Latex:
(Intros THEN (Assert \mforall{}j:\mBbbZ{}. (j \mmember{}\msubb{} used \mmember{} \mBbbB{}) BY Auto))
Home
Index