HOLE Home Higher-Order Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  HOLE Home  >  Th. List  >  dfan2 Unicode version

Theorem dfan2 154
Description: An alternative definition of the "and" term in terms of the context conjunction. (Contributed by Mario Carneiro, 9-Oct-2014.)
Hypotheses
Ref Expression
dfan2.1 |- A:*
dfan2.2 |- B:*
Assertion
Ref Expression
dfan2 |- T. |= [[A /\ B] = (A, B)]

Proof of Theorem dfan2
Dummy variables x f y are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 wan 136 . . . . . 6 |- /\ :(* -> (* -> *))
2 dfan2.1 . . . . . 6 |- A:*
3 dfan2.2 . . . . . 6 |- B:*
41, 2, 3wov 72 . . . . 5 |- [A /\ B]:*
54trud 27 . . . 4 |- [A /\ B] |= T.
6 wv 64 . . . . . . . 8 |- f:(* -> (* -> *)):(* -> (* -> *))
76, 2, 3wov 72 . . . . . . 7 |- [Af:(* -> (* -> *))B]:*
87wl 66 . . . . . 6 |- \f:(* -> (* -> *)) [Af:(* -> (* -> *))B]:((* -> (* -> *)) -> *)
9 wv 64 . . . . . . . 8 |- x:*:*
109wl 66 . . . . . . 7 |- \y:* x:*:(* -> *)
1110wl 66 . . . . . 6 |- \x:* \y:* x:*:(* -> (* -> *))
128, 11wc 50 . . . . 5 |- (\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* x:*):*
134id 25 . . . . . . 7 |- [A /\ B] |= [A /\ B]
142, 3anval 148 . . . . . . . 8 |- T. |= [[A /\ B] = [\f:(* -> (* -> *)) [Af:(* -> (* -> *))B] = \f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]]]
154, 14a1i 28 . . . . . . 7 |- [A /\ B] |= [[A /\ B] = [\f:(* -> (* -> *)) [Af:(* -> (* -> *))B] = \f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]]]
1613, 15mpbi 82 . . . . . 6 |- [A /\ B] |= [\f:(* -> (* -> *)) [Af:(* -> (* -> *))B] = \f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]]
178, 11, 16ceq1 89 . . . . 5 |- [A /\ B] |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* x:*) = (\f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]\x:* \y:* x:*)]
186, 11weqi 76 . . . . . . . . . 10 |- [f:(* -> (* -> *)) = \x:* \y:* x:*]:*
1918id 25 . . . . . . . . 9 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [f:(* -> (* -> *)) = \x:* \y:* x:*]
206, 2, 3, 19oveq 102 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[Af:(* -> (* -> *))B] = [A\x:* \y:* x:*B]]
219, 2weqi 76 . . . . . . . . . . 11 |- [x:* = A]:*
2221id 25 . . . . . . . . . 10 |- [x:* = A] |= [x:* = A]
23 wv 64 . . . . . . . . . . . 12 |- y:*:*
2423, 3weqi 76 . . . . . . . . . . 11 |- [y:* = B]:*
2524, 2eqid 83 . . . . . . . . . 10 |- [y:* = B] |= [A = A]
269, 2, 3, 22, 25ovl 117 . . . . . . . . 9 |- T. |= [[A\x:* \y:* x:*B] = A]
2718, 26a1i 28 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[A\x:* \y:* x:*B] = A]
287, 20, 27eqtri 95 . . . . . . 7 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[Af:(* -> (* -> *))B] = A]
297, 11, 28cl 116 . . . . . 6 |- T. |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* x:*) = A]
304, 29a1i 28 . . . . 5 |- [A /\ B] |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* x:*) = A]
31 wtru 43 . . . . . . . 8 |- T.:*
326, 31, 31wov 72 . . . . . . 7 |- [T.f:(* -> (* -> *))T.]:*
336, 31, 31, 19oveq 102 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[T.f:(* -> (* -> *))T.] = [T.\x:* \y:* x:*T.]]
349, 31weqi 76 . . . . . . . . . . 11 |- [x:* = T.]:*
3534id 25 . . . . . . . . . 10 |- [x:* = T.] |= [x:* = T.]
3623, 31weqi 76 . . . . . . . . . . 11 |- [y:* = T.]:*
3736, 31eqid 83 . . . . . . . . . 10 |- [y:* = T.] |= [T. = T.]
389, 31, 31, 35, 37ovl 117 . . . . . . . . 9 |- T. |= [[T.\x:* \y:* x:*T.] = T.]
3918, 38a1i 28 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[T.\x:* \y:* x:*T.] = T.]
4032, 33, 39eqtri 95 . . . . . . 7 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[T.f:(* -> (* -> *))T.] = T.]
4132, 11, 40cl 116 . . . . . 6 |- T. |= [(\f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]\x:* \y:* x:*) = T.]
424, 41a1i 28 . . . . 5 |- [A /\ B] |= [(\f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]\x:* \y:* x:*) = T.]
4312, 17, 30, 423eqtr3i 97 . . . 4 |- [A /\ B] |= [A = T.]
445, 43mpbir 87 . . 3 |- [A /\ B] |= A
4523wl 66 . . . . . . 7 |- \y:* y:*:(* -> *)
4645wl 66 . . . . . 6 |- \x:* \y:* y:*:(* -> (* -> *))
478, 46wc 50 . . . . 5 |- (\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* y:*):*
488, 46, 16ceq1 89 . . . . 5 |- [A /\ B] |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* y:*) = (\f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]\x:* \y:* y:*)]
496, 46weqi 76 . . . . . . . . . 10 |- [f:(* -> (* -> *)) = \x:* \y:* y:*]:*
5049id 25 . . . . . . . . 9 |- [f:(* -> (* -> *)) = \x:* \y:* y:*] |= [f:(* -> (* -> *)) = \x:* \y:* y:*]
516, 2, 3, 50oveq 102 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* y:*] |= [[Af:(* -> (* -> *))B] = [A\x:* \y:* y:*B]]
527, 46, 51cl 116 . . . . . . 7 |- T. |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* y:*) = [A\x:* \y:* y:*B]]
5321, 23eqid 83 . . . . . . . . 9 |- [x:* = A] |= [y:* = y:*]
5424id 25 . . . . . . . . 9 |- [y:* = B] |= [y:* = B]
5523, 2, 3, 53, 54ovl 117 . . . . . . . 8 |- T. |= [[A\x:* \y:* y:*B] = B]
5631, 55a1i 28 . . . . . . 7 |- T. |= [[A\x:* \y:* y:*B] = B]
5747, 52, 56eqtri 95 . . . . . 6 |- T. |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* y:*) = B]
584, 57a1i 28 . . . . 5 |- [A /\ B] |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* y:*) = B]
596, 31, 31, 50oveq 102 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* y:*] |= [[T.f:(* -> (* -> *))T.] = [T.\x:* \y:* y:*T.]]
6034, 23eqid 83 . . . . . . . . . 10 |- [x:* = T.] |= [y:* = y:*]
6136id 25 . . . . . . . . . 10 |- [y:* = T.] |= [y:* = T.]
6223, 31, 31, 60, 61ovl 117 . . . . . . . . 9 |- T. |= [[T.\x:* \y:* y:*T.] = T.]
6349, 62a1i 28 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* y:*] |= [[T.\x:* \y:* y:*T.] = T.]
6432, 59, 63eqtri 95 . . . . . . 7 |- [f:(* -> (* -> *)) = \x:* \y:* y:*] |= [[T.f:(* -> (* -> *))T.] = T.]
6532, 46, 64cl 116 . . . . . 6 |- T. |= [(\f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]\x:* \y:* y:*) = T.]
664, 65a1i 28 . . . . 5 |- [A /\ B] |= [(\f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]\x:* \y:* y:*) = T.]
6747, 48, 58, 663eqtr3i 97 . . . 4 |- [A /\ B] |= [B = T.]
685, 67mpbir 87 . . 3 |- [A /\ B] |= B
6944, 68jca 18 . 2 |- [A /\ B] |= (A, B)
702, 3simpl 22 . . . . . . 7 |- (A, B) |= A
7170eqtru 86 . . . . . 6 |- (A, B) |= [T. = A]
722, 3simpr 23 . . . . . . 7 |- (A, B) |= B
7372eqtru 86 . . . . . 6 |- (A, B) |= [T. = B]
746, 31, 31, 71, 73oveq12 100 . . . . 5 |- (A, B) |= [[T.f:(* -> (* -> *))T.] = [Af:(* -> (* -> *))B]]
7532, 74eqcomi 79 . . . 4 |- (A, B) |= [[Af:(* -> (* -> *))B] = [T.f:(* -> (* -> *))T.]]
767, 75leq 91 . . 3 |- (A, B) |= [\f:(* -> (* -> *)) [Af:(* -> (* -> *))B] = \f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]]
7770ax-cb1 29 . . . 4 |- (A, B):*
7877, 14a1i 28 . . 3 |- (A, B) |= [[A /\ B] = [\f:(* -> (* -> *)) [Af:(* -> (* -> *))B] = \f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]]]
7976, 78mpbir 87 . 2 |- (A, B) |= [A /\ B]
8069, 79dedi 85 1 |- T. |= [[A /\ B] = (A, B)]
Colors of variables: type var term
Syntax hints:  tv 1   -> ht 2  *hb 3  kc 5  \kl 6   = ke 7  T.kt 8  [kbr 9  kct 10   |= wffMMJ2 11  wffMMJ2t 12   /\ tan 119
This theorem was proved from axioms:  ax-syl 15  ax-jca 17  ax-simpl 20  ax-simpr 21  ax-id 24  ax-trud 26  ax-cb1 29  ax-cb2 30  ax-wctl 31  ax-wctr 32  ax-weq 40  ax-refl 42  ax-eqmp 45  ax-ded 46  ax-wct 47  ax-wc 49  ax-ceq 51  ax-wv 63  ax-wl 65  ax-beta 67  ax-distrc 68  ax-leq 69  ax-distrl 70  ax-wov 71  ax-eqtypi 77  ax-eqtypri 80  ax-hbl1 103  ax-17 105  ax-inst 113
This theorem depends on definitions:  df-ov 73  df-an 128
This theorem is referenced by:  hbct  155  mpd  156  ex  158
  Copyright terms: Public domain W3C validator