Step
*
1
1
of Lemma
dM-to-FL-unique
1. I : fset(ℕ)
2. g : Hom(free-DeMorgan-lattice(names(I);NamesDeq);face_lattice(I))
3. ∀i:names(I). (((g <i>) = (i=1) ∈ Point(face_lattice(I))) ∧ ((g <1-i>) = (i=0) ∈ Point(face_lattice(I))))
4. x : Point(dM(I))
5. λac.lattice-extend(face_lattice(I);union-deq(names(I);names(I);NamesDeq;NamesDeq);face_lattice-deq();λx.case x
                                                                                                            of inl(a) =>
                                                                                                            (a=1)
                                                                                                            | inr(a) =>
                                                                                                            (a=0);ac)
   ∈ Hom(free-DeMorgan-lattice(names(I);NamesDeq);face_lattice(I))
⊢ lattice-extend(face_lattice(I);union-deq(names(I);names(I);NamesDeq;NamesDeq);face_lattice-deq();λx.case x
                                                                                                       of inl(a) =>
                                                                                                       (a=1)
                                                                                                       | inr(a) =>
                                                                                                       (a=0);x)
= (g x)
∈ Point(face_lattice(I))
BY
{ ((InstLemma `free-dist-lattice-hom-unique` [⌜names(I) + names(I)⌝;⌜union-deq(names(I);names(I);NamesDeq;NamesDeq)⌝;
    ⌜face_lattice(I)⌝;⌜face_lattice-deq()⌝;⌜λx.case x of inl(a) => (a=1) | inr(a) => (a=0)⌝]⋅
    THENA Auto
    )
   THEN Reduce (-1)
   THEN Fold `free-DeMorgan-lattice` (-1)) }
1
1. I : fset(ℕ)
2. g : Hom(free-DeMorgan-lattice(names(I);NamesDeq);face_lattice(I))
3. ∀i:names(I). (((g <i>) = (i=1) ∈ Point(face_lattice(I))) ∧ ((g <1-i>) = (i=0) ∈ Point(face_lattice(I))))
4. x : Point(dM(I))
5. λac.lattice-extend(face_lattice(I);union-deq(names(I);names(I);NamesDeq;NamesDeq);face_lattice-deq();λx.case x
                                                                                                            of inl(a) =>
                                                                                                            (a=1)
                                                                                                            | inr(a) =>
                                                                                                            (a=0);ac)
   ∈ Hom(free-DeMorgan-lattice(names(I);NamesDeq);face_lattice(I))
6. ∀g,h:Hom(free-DeMorgan-lattice(names(I);NamesDeq);face_lattice(I)).
     (((λx.case x of inl(a) => (a=1) | inr(a) => (a=0))
      = (g o (λx.free-dl-inc(x)))
      ∈ ((names(I) + names(I)) ⟶ Point(face_lattice(I))))
     
⇒ ((λx.case x of inl(a) => (a=1) | inr(a) => (a=0))
        = (h o (λx.free-dl-inc(x)))
        ∈ ((names(I) + names(I)) ⟶ Point(face_lattice(I))))
     
⇒ (g = h ∈ Hom(free-DeMorgan-lattice(names(I);NamesDeq);face_lattice(I))))
⊢ lattice-extend(face_lattice(I);union-deq(names(I);names(I);NamesDeq;NamesDeq);face_lattice-deq();λx.case x
                                                                                                       of inl(a) =>
                                                                                                       (a=1)
                                                                                                       | inr(a) =>
                                                                                                       (a=0);x)
= (g x)
∈ Point(face_lattice(I))
Latex:
Latex:
1.  I  :  fset(\mBbbN{})
2.  g  :  Hom(free-DeMorgan-lattice(names(I);NamesDeq);face\_lattice(I))
3.  \mforall{}i:names(I).  (((g  <i>)  =  (i=1))  \mwedge{}  ((g  ə-i>)  =  (i=0)))
4.  x  :  Point(dM(I))
5.  \mlambda{}ac.lattice-extend(face\_lattice(I);union-deq(names(I);names(I);NamesDeq;NamesDeq);
                                            face\_lattice-deq();\mlambda{}x.case  x  of  inl(a)  =>  (a=1)  |  inr(a)  =>  (a=0);ac)
      \mmember{}  Hom(free-DeMorgan-lattice(names(I);NamesDeq);face\_lattice(I))
\mvdash{}  lattice-extend(face\_lattice(I);union-deq(names(I);names(I);NamesDeq;NamesDeq);face\_lattice-deq();
                                  \mlambda{}x.case  x  of  inl(a)  =>  (a=1)  |  inr(a)  =>  (a=0);x)
=  (g  x)
By
Latex:
((InstLemma  `free-dist-lattice-hom-unique`  [\mkleeneopen{}names(I)  +  names(I)\mkleeneclose{};
    \mkleeneopen{}union-deq(names(I);names(I);NamesDeq;NamesDeq)\mkleeneclose{};\mkleeneopen{}face\_lattice(I)\mkleeneclose{};\mkleeneopen{}face\_lattice-deq()\mkleeneclose{};
    \mkleeneopen{}\mlambda{}x.case  x  of  inl(a)  =>  (a=1)  |  inr(a)  =>  (a=0)\mkleeneclose{}]\mcdot{}
    THENA  Auto
    )
  THEN  Reduce  (-1)
  THEN  Fold  `free-DeMorgan-lattice`  (-1))
Home
Index