Step * of Lemma fpf-sub-val2

[A,A':Type].
  ∀[B:A ─→ Type]
    ∀eq:EqDecider(A'). ∀f,g:a:A fp-> B[a]. ∀x:A'.
      ∀[P,Q:a:A ─→ B[a] ─→ ℙ].
        ((∀x:A. ∀z:B[x].  (P[x;z]  Q[x;z]))  != f(x) ==> P[x;z]  != g(x) ==> Q[x;z] supposing g ⊆ f) 
  supposing strong-subtype(A;A')
BY
(Repeat ((D THENA Complete (Auto)))
   THEN (AssertBY ⌈eq ∈ EqDecider(A)⌉
           (SubsumeC ⌈EqDecider(A')⌉⋅ THEN Auto THEN BLemma `strong-subtype-deq-subtype` THEN Auto)⋅
         THEN (D THENA Auto)
         )
   THEN (Unfold `fpf-val` THEN THEN THEN Unfold `fpf-dom` THEN Reduce 0)⋅}

1
1. [A] Type
2. [A'] Type
3. strong-subtype(A;A')
4. [B] A ─→ Type
5. eq EqDecider(A')@i
6. d1 List@i
7. f1 a:{a:A| (a ∈ d1)}  ─→ B[a]@i
8. List@i
9. g1 a:{a:A| (a ∈ d)}  ─→ B[a]@i
10. A'@i
11. [P] a:A ─→ B[a] ─→ ℙ
12. [Q] a:A ─→ B[a] ─→ ℙ
13. ∀x:A. ∀z:B[x].  (P[x;z]  Q[x;z])@i
14. eq ∈ EqDecider(A)
15. <d, g1> ⊆ <d1, f1>
⊢ ((↑x ∈b d1))  P[x;f1 x])  (↑x ∈b d))  Q[x;g1 x]


Latex:


\mforall{}[A,A':Type].
    \mforall{}[B:A  {}\mrightarrow{}  Type]
        \mforall{}eq:EqDecider(A').  \mforall{}f,g:a:A  fp->  B[a].  \mforall{}x:A'.
            \mforall{}[P,Q:a:A  {}\mrightarrow{}  B[a]  {}\mrightarrow{}  \mBbbP{}].
                ((\mforall{}x:A.  \mforall{}z:B[x].    (P[x;z]  {}\mRightarrow{}  Q[x;z]))
                {}\mRightarrow{}  z  !=  f(x)  ==>  P[x;z]  {}\mRightarrow{}  z  !=  g(x)  ==>  Q[x;z]  supposing  g  \msubseteq{}  f) 
    supposing  strong-subtype(A;A')


By

(Repeat  ((D  0  THENA  Complete  (Auto)))
  THEN  (AssertBY  \mkleeneopen{}eq  \mmember{}  EqDecider(A)\mkleeneclose{}
                  (SubsumeC  \mkleeneopen{}EqDecider(A')\mkleeneclose{}\mcdot{}  THEN  Auto  THEN  BLemma  `strong-subtype-deq-subtype`  THEN  Auto)\mcdot{}
              THEN  (D  0  THENA  Auto)
              )
  THEN  (Unfold  `fpf-val`  0  THEN  D  7  THEN  D  6  THEN  Unfold  `fpf-dom`  0  THEN  Reduce  0)\mcdot{})




Home Index