Step
*
of Lemma
FOLRule_ind_wf
No Annotations
∀[A:Type]. ∀[R:A ⟶ FOLRule() ⟶ ℙ]. ∀[v:FOLRule()]. ∀[andI:{x:A| R[x;andI]} ]. ∀[impI:{x:A| R[x;impI]} ].
∀[allI:var:ℤ ⟶ {x:A| R[x;allI with var]} ]. ∀[existsI:var:ℤ ⟶ {x:A| R[x;existsI with var]} ].
∀[orI:left:𝔹 ⟶ {x:A| R[x;fRuleorI(left)]} ]. ∀[hyp:{x:A| R[x;hyp]} ]. ∀[andE:hypnum:ℕ ⟶ {x:A| R[x;andE on hypnum]} ].
∀[orE:hypnum:ℕ ⟶ {x:A| R[x;orE on hypnum]} ]. ∀[impE:hypnum:ℕ ⟶ {x:A| R[x;impE on hypnum]} ].
∀[allE:hypnum:ℕ ⟶ var:ℤ ⟶ {x:A| R[x;allE on hypnum with var]} ]. ∀[existsE:hypnum:ℕ
                                                                            ⟶ var:ℤ
                                                                            ⟶ {x:A| R[x;existsE on hypnum with var]} ].
∀[falseE:hypnum:ℕ ⟶ {x:A| R[x;falseE on hypnum]} ].
  (case(v)
   andI => andI
   impI => impI
   allI with var => allI[var]
   existsI with var => existsI[var]
   orI (left?left) => orI[left]
   hyp => hyp
   andE @hypnum => andE[hypnum]
   orE @hypnum => orE[hypnum]
   impE @hypnum => impE[hypnum]
   allE @hypnum with var => allE[hypnum;var]
   existsE @hypnum with var => existsE[hypnum;var]
   falseE @hypnum => falseE[hypnum] ∈ {x:A| R[x;v]} )
BY
{ (ProveDatatypeIndWfByLemma FOLRule-definition) }
Latex:
Latex:
No  Annotations
\mforall{}[A:Type].  \mforall{}[R:A  {}\mrightarrow{}  FOLRule()  {}\mrightarrow{}  \mBbbP{}].  \mforall{}[v:FOLRule()].  \mforall{}[andI:\{x:A|  R[x;andI]\}  ].  \mforall{}[impI:\{x:A| 
                                                                                                                                                                              R[x;impI]\}  ].
\mforall{}[allI:var:\mBbbZ{}  {}\mrightarrow{}  \{x:A|  R[x;allI  with  var]\}  ].  \mforall{}[existsI:var:\mBbbZ{}  {}\mrightarrow{}  \{x:A|  R[x;existsI  with  var]\}  ].
\mforall{}[orI:left:\mBbbB{}  {}\mrightarrow{}  \{x:A|  R[x;fRuleorI(left)]\}  ].  \mforall{}[hyp:\{x:A|  R[x;hyp]\}  ].
\mforall{}[andE:hypnum:\mBbbN{}  {}\mrightarrow{}  \{x:A|  R[x;andE  on  hypnum]\}  ].  \mforall{}[orE:hypnum:\mBbbN{}  {}\mrightarrow{}  \{x:A|  R[x;orE  on  hypnum]\}  ].
\mforall{}[impE:hypnum:\mBbbN{}  {}\mrightarrow{}  \{x:A|  R[x;impE  on  hypnum]\}  ].  \mforall{}[allE:hypnum:\mBbbN{}
                                                                                                              {}\mrightarrow{}  var:\mBbbZ{}
                                                                                                              {}\mrightarrow{}  \{x:A|  R[x;allE  on  hypnum  with  var]\}  ].
\mforall{}[existsE:hypnum:\mBbbN{}  {}\mrightarrow{}  var:\mBbbZ{}  {}\mrightarrow{}  \{x:A|  R[x;existsE  on  hypnum  with  var]\}  ].
\mforall{}[falseE:hypnum:\mBbbN{}  {}\mrightarrow{}  \{x:A|  R[x;falseE  on  hypnum]\}  ].
    (case(v)
      andI  =>  andI
      impI  =>  impI
      allI  with  var  =>  allI[var]
      existsI  with  var  =>  existsI[var]
      orI  (left?left)  =>  orI[left]
      hyp  =>  hyp
      andE  @hypnum  =>  andE[hypnum]
      orE  @hypnum  =>  orE[hypnum]
      impE  @hypnum  =>  impE[hypnum]
      allE  @hypnum  with  var  =>  allE[hypnum;var]
      existsE  @hypnum  with  var  =>  existsE[hypnum;var]
      falseE  @hypnum  =>  falseE[hypnum]  \mmember{}  \{x:A|  R[x;v]\}  )
By
Latex:
(ProveDatatypeIndWfByLemma  FOLRule-definition)
Home
Index