Step
*
1
1
of Lemma
FormSafe1_functionality
1. C : Type
2. left : Form(C)
3. right : Form(C)
4. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs) 
⇒ (FormSafe1(left) vs) 
⇒ (FormSafe1(left) ws))
5. ∀vs,ws:Atom List.  (l_subset(Atom;ws;vs) 
⇒ (FormSafe1(right) vs) 
⇒ (FormSafe1(right) ws))
6. vs : Atom List
7. ws : Atom List
8. l_subset(Atom;ws;vs)
9. ↑null(vs)
⊢ (↑null(ws))
∨ (∃x:Atom
    (set-equal(Atom;ws;[x])
    ∧ (((↑FormVar?(left)) ∧ (FormVar-name(left) = x ∈ Atom) ∧ (¬(x ∈ FormFvs(right))))
      ∨ ((↑FormVar?(right)) ∧ (FormVar-name(right) = x ∈ Atom) ∧ (¬(x ∈ FormFvs(left)))))))
BY
{ ((RW assert_pushdownC (-1) THENA Auto) THEN HypSubst' (-1) (-2) THEN FLemma `l_subset_nil_right` [-2] THEN Auto) }
Latex:
Latex:
1.  C  :  Type
2.  left  :  Form(C)
3.  right  :  Form(C)
4.  \mforall{}vs,ws:Atom  List.    (l\_subset(Atom;ws;vs)  {}\mRightarrow{}  (FormSafe1(left)  vs)  {}\mRightarrow{}  (FormSafe1(left)  ws))
5.  \mforall{}vs,ws:Atom  List.    (l\_subset(Atom;ws;vs)  {}\mRightarrow{}  (FormSafe1(right)  vs)  {}\mRightarrow{}  (FormSafe1(right)  ws))
6.  vs  :  Atom  List
7.  ws  :  Atom  List
8.  l\_subset(Atom;ws;vs)
9.  \muparrow{}null(vs)
\mvdash{}  (\muparrow{}null(ws))
\mvee{}  (\mexists{}x:Atom
        (set-equal(Atom;ws;[x])
        \mwedge{}  (((\muparrow{}FormVar?(left))  \mwedge{}  (FormVar-name(left)  =  x)  \mwedge{}  (\mneg{}(x  \mmember{}  FormFvs(right))))
            \mvee{}  ((\muparrow{}FormVar?(right))  \mwedge{}  (FormVar-name(right)  =  x)  \mwedge{}  (\mneg{}(x  \mmember{}  FormFvs(left)))))))
By
Latex:
((RW  assert\_pushdownC  (-1)  THENA  Auto)
  THEN  HypSubst'  (-1)  (-2)
  THEN  FLemma  `l\_subset\_nil\_right`  [-2]
  THEN  Auto)
Home
Index