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