Step
*
of Lemma
free-DeMorgan-algebra-property
∀T:Type. ∀eq:EqDecider(T). ∀dm:DeMorganAlgebra. ∀eq2:EqDecider(Point(dm)). ∀f:T ⟶ Point(dm).
  (∃g:dma-hom(free-DeMorgan-algebra(T;eq);dm) [(∀i:T. ((g <i>) = (f i) ∈ Point(dm)))])
BY
{ (Auto
   THEN (InstLemma `free-dist-lattice-property` [⌜T + T⌝;⌜union-deq(T;T;eq;eq)⌝;⌜dm⌝;⌜eq2⌝;⌜λp.case p
                                                                                                of inl(a) =>
                                                                                                f a
                                                                                                | inr(a) =>
                                                                                                ¬(f a)⌝]⋅
         THENA Auto
         )
   THEN Fold `free-DeMorgan-lattice` (-1)
   THEN ExRepD
   THEN (Assert ∀i:T. ((g <i>) = (f i) ∈ Point(dm)) BY
               (Auto
                THEN ((ApFunToHypEquands `Z' ⌜Z (inl i)⌝ ⌜Point(dm)⌝ (-2)⋅ THENM Reduce (-1)) THENA Auto)
                THEN Fold `dminc` (-1)
                THEN Eq))
   THEN With ⌜g⌝ (D 0)⋅
   THEN Auto) }
1
.....wf..... 
1. T : Type@i'
2. eq : EqDecider(T)@i
3. dm : DeMorganAlgebra@i'
4. eq2 : EqDecider(Point(dm))@i
5. f : T ⟶ Point(dm)@i
6. g : Hom(free-DeMorgan-lattice(T;eq);dm)
7. (λp.case p of inl(a) => f a | inr(a) => ¬(f a)) = (g o (λx.free-dl-inc(x))) ∈ ((T + T) ⟶ Point(dm))
8. ∀i:T. ((g <i>) = (f i) ∈ Point(dm))
⊢ g ∈ dma-hom(free-DeMorgan-algebra(T;eq);dm)
Latex:
Latex:
\mforall{}T:Type.  \mforall{}eq:EqDecider(T).  \mforall{}dm:DeMorganAlgebra.  \mforall{}eq2:EqDecider(Point(dm)).  \mforall{}f:T  {}\mrightarrow{}  Point(dm).
    (\mexists{}g:dma-hom(free-DeMorgan-algebra(T;eq);dm)  [(\mforall{}i:T.  ((g  <i>)  =  (f  i)))])
By
Latex:
(Auto
  THEN  (InstLemma  `free-dist-lattice-property`  [\mkleeneopen{}T  +  T\mkleeneclose{};\mkleeneopen{}union-deq(T;T;eq;eq)\mkleeneclose{};\mkleeneopen{}dm\mkleeneclose{};\mkleeneopen{}eq2\mkleeneclose{};
              \mkleeneopen{}\mlambda{}p.case  p  of  inl(a)  =>  f  a  |  inr(a)  =>  \mneg{}(f  a)\mkleeneclose{}]\mcdot{}
              THENA  Auto
              )
  THEN  Fold  `free-DeMorgan-lattice`  (-1)
  THEN  ExRepD
  THEN  (Assert  \mforall{}i:T.  ((g  <i>)  =  (f  i))  BY
                          (Auto
                            THEN  ((ApFunToHypEquands  `Z'  \mkleeneopen{}Z  (inl  i)\mkleeneclose{}  \mkleeneopen{}Point(dm)\mkleeneclose{}  (-2)\mcdot{}  THENM  Reduce  (-1))
                                        THENA  Auto
                                        )
                            THEN  Fold  `dminc`  (-1)
                            THEN  Eq))
  THEN  With  \mkleeneopen{}g\mkleeneclose{}  (D  0)\mcdot{}
  THEN  Auto)
Home
Index