Step
*
1
of Lemma
FormSafe-iff-FormSafe1'
1. C : Type
⊢ ∀left,right:Form(C).
    ((∀vs:Atom List. (FormSafe1(left) vs 
⇐⇒ FormSafe1'(left) vs))
    
⇒ (∀vs:Atom List. (FormSafe1(right) vs 
⇐⇒ FormSafe1'(right) vs))
    
⇒ (∀vs:Atom List
          (∃as,bs:Atom List
            (set-equal(Atom;vs;as @ bs)
            ∧ (FormSafe1(left) as)
            ∧ (FormSafe1(right) bs)
            ∧ (l_disjoint(Atom;as;FormFvs(right)) ∨ l_disjoint(Atom;bs;FormFvs(left))))
          
⇐⇒ (∃theta:Atom List
                (l_subset(Atom;theta;vs-FormFvs(right)) ∧ (FormSafe1'(left) theta) ∧ (FormSafe1'(right) vs-theta)))
              ∨ (∃phi:Atom List
                  (l_subset(Atom;phi;vs-FormFvs(left)) ∧ (FormSafe1'(left) vs-phi) ∧ (FormSafe1'(right) phi))))))
BY
{ Auto }
1
1. C : Type
2. left : Form(C)
3. right : Form(C)
4. ∀vs:Atom List. (FormSafe1(left) vs 
⇐⇒ FormSafe1'(left) vs)
5. ∀vs:Atom List. (FormSafe1(right) vs 
⇐⇒ FormSafe1'(right) vs)
6. vs : Atom List
7. ∃as,bs:Atom List
    (set-equal(Atom;vs;as @ bs)
    ∧ (FormSafe1(left) as)
    ∧ (FormSafe1(right) bs)
    ∧ (l_disjoint(Atom;as;FormFvs(right)) ∨ l_disjoint(Atom;bs;FormFvs(left))))
⊢ (∃theta:Atom List. (l_subset(Atom;theta;vs-FormFvs(right)) ∧ (FormSafe1'(left) theta) ∧ (FormSafe1'(right) vs-theta)))
∨ (∃phi:Atom List. (l_subset(Atom;phi;vs-FormFvs(left)) ∧ (FormSafe1'(left) vs-phi) ∧ (FormSafe1'(right) phi)))
2
1. C : Type
2. left : Form(C)
3. right : Form(C)
4. ∀vs:Atom List. (FormSafe1(left) vs 
⇐⇒ FormSafe1'(left) vs)
5. ∀vs:Atom List. (FormSafe1(right) vs 
⇐⇒ FormSafe1'(right) vs)
6. vs : Atom List
7. (∃theta:Atom List
     (l_subset(Atom;theta;vs-FormFvs(right)) ∧ (FormSafe1'(left) theta) ∧ (FormSafe1'(right) vs-theta)))
∨ (∃phi:Atom List. (l_subset(Atom;phi;vs-FormFvs(left)) ∧ (FormSafe1'(left) vs-phi) ∧ (FormSafe1'(right) phi)))
⊢ ∃as,bs:Atom List
   (set-equal(Atom;vs;as @ bs)
   ∧ (FormSafe1(left) as)
   ∧ (FormSafe1(right) bs)
   ∧ (l_disjoint(Atom;as;FormFvs(right)) ∨ l_disjoint(Atom;bs;FormFvs(left))))
Latex:
Latex:
1.  C  :  Type
\mvdash{}  \mforall{}left,right:Form(C).
        ((\mforall{}vs:Atom  List.  (FormSafe1(left)  vs  \mLeftarrow{}{}\mRightarrow{}  FormSafe1'(left)  vs))
        {}\mRightarrow{}  (\mforall{}vs:Atom  List.  (FormSafe1(right)  vs  \mLeftarrow{}{}\mRightarrow{}  FormSafe1'(right)  vs))
        {}\mRightarrow{}  (\mforall{}vs:Atom  List
                    (\mexists{}as,bs:Atom  List
                        (set-equal(Atom;vs;as  @  bs)
                        \mwedge{}  (FormSafe1(left)  as)
                        \mwedge{}  (FormSafe1(right)  bs)
                        \mwedge{}  (l\_disjoint(Atom;as;FormFvs(right))  \mvee{}  l\_disjoint(Atom;bs;FormFvs(left))))
                    \mLeftarrow{}{}\mRightarrow{}  (\mexists{}theta:Atom  List
                                (l\_subset(Atom;theta;vs-FormFvs(right))
                                \mwedge{}  (FormSafe1'(left)  theta)
                                \mwedge{}  (FormSafe1'(right)  vs-theta)))
                            \mvee{}  (\mexists{}phi:Atom  List
                                    (l\_subset(Atom;phi;vs-FormFvs(left))
                                    \mwedge{}  (FormSafe1'(left)  vs-phi)
                                    \mwedge{}  (FormSafe1'(right)  phi))))))
By
Latex:
Auto
Home
Index