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

Theorem dfan2 144
Description: An alternative defintion of the "and" term in terms of the context conjunction.
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 126 . . . . . 6 |- /\ :(* -> (* -> *))
2 dfan2.1 . . . . . 6 |- A:*
3 dfan2.2 . . . . . 6 |- B:*
41, 2, 3wov 64 . . . . 5 |- [A /\ B]:*
54trud 27 . . . 4 |- [A /\ B] |= T.
6 wv 58 . . . . . . . 8 |- f:(* -> (* -> *)):(* -> (* -> *))
76, 2, 3wov 64 . . . . . . 7 |- [Af:(* -> (* -> *))B]:*
87wl 59 . . . . . 6 |- \f:(* -> (* -> *)) [Af:(* -> (* -> *))B]:((* -> (* -> *)) -> *)
9 wv 58 . . . . . . . 8 |- x:*:*
109wl 59 . . . . . . 7 |- \y:* x:*:(* -> *)
1110wl 59 . . . . . 6 |- \x:* \y:* x:*:(* -> (* -> *))
128, 11wc 45 . . . . 5 |- (\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* x:*):*
134id 25 . . . . . . 7 |- [A /\ B] |= [A /\ B]
142, 3anval 138 . . . . . . . 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 72 . . . . . 6 |- [A /\ B] |= [\f:(* -> (* -> *)) [Af:(* -> (* -> *))B] = \f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]]
178, 11, 16ceq1 79 . . . . 5 |- [A /\ B] |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* x:*) = (\f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]\x:* \y:* x:*)]
186, 11weqi 68 . . . . . . . . . 10 |- [f:(* -> (* -> *)) = \x:* \y:* x:*]:*
1918id 25 . . . . . . . . 9 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [f:(* -> (* -> *)) = \x:* \y:* x:*]
206, 2, 3, 19oveq 92 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[Af:(* -> (* -> *))B] = [A\x:* \y:* x:*B]]
219, 2weqi 68 . . . . . . . . . . 11 |- [x:* = A]:*
2221id 25 . . . . . . . . . 10 |- [x:* = A] |= [x:* = A]
23 wv 58 . . . . . . . . . . . 12 |- y:*:*
2423, 3weqi 68 . . . . . . . . . . 11 |- [y:* = B]:*
2524, 2eqid 73 . . . . . . . . . 10 |- [y:* = B] |= [A = A]
269, 2, 3, 22, 25ovl 107 . . . . . . . . 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 85 . . . . . . 7 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[Af:(* -> (* -> *))B] = A]
297, 11, 28cl 106 . . . . . 6 |- T. |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* x:*) = A]
304, 29a1i 28 . . . . 5 |- [A /\ B] |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* x:*) = A]
31 wtru 40 . . . . . . . 8 |- T.:*
326, 31, 31wov 64 . . . . . . 7 |- [T.f:(* -> (* -> *))T.]:*
336, 31, 31, 19oveq 92 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[T.f:(* -> (* -> *))T.] = [T.\x:* \y:* x:*T.]]
349, 31weqi 68 . . . . . . . . . . 11 |- [x:* = T.]:*
3534id 25 . . . . . . . . . 10 |- [x:* = T.] |= [x:* = T.]
3623, 31weqi 68 . . . . . . . . . . 11 |- [y:* = T.]:*
3736, 31eqid 73 . . . . . . . . . 10 |- [y:* = T.] |= [T. = T.]
389, 31, 31, 35, 37ovl 107 . . . . . . . . 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 85 . . . . . . 7 |- [f:(* -> (* -> *)) = \x:* \y:* x:*] |= [[T.f:(* -> (* -> *))T.] = T.]
4132, 11, 40cl 106 . . . . . 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 87 . . . 4 |- [A /\ B] |= [A = T.]
445, 43mpbir 77 . . 3 |- [A /\ B] |= A
4523wl 59 . . . . . . 7 |- \y:* y:*:(* -> *)
4645wl 59 . . . . . 6 |- \x:* \y:* y:*:(* -> (* -> *))
478, 46wc 45 . . . . 5 |- (\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* y:*):*
488, 46, 16ceq1 79 . . . . 5 |- [A /\ B] |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* y:*) = (\f:(* -> (* -> *)) [T.f:(* -> (* -> *))T.]\x:* \y:* y:*)]
496, 46weqi 68 . . . . . . . . . 10 |- [f:(* -> (* -> *)) = \x:* \y:* y:*]:*
5049id 25 . . . . . . . . 9 |- [f:(* -> (* -> *)) = \x:* \y:* y:*] |= [f:(* -> (* -> *)) = \x:* \y:* y:*]
516, 2, 3, 50oveq 92 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* y:*] |= [[Af:(* -> (* -> *))B] = [A\x:* \y:* y:*B]]
527, 46, 51cl 106 . . . . . . 7 |- T. |= [(\f:(* -> (* -> *)) [Af:(* -> (* -> *))B]\x:* \y:* y:*) = [A\x:* \y:* y:*B]]
5321, 23eqid 73 . . . . . . . . 9 |- [x:* = A] |= [y:* = y:*]
5424id 25 . . . . . . . . 9 |- [y:* = B] |= [y:* = B]
5523, 2, 3, 53, 54ovl 107 . . . . . . . 8 |- T. |= [[A\x:* \y:* y:*B] = B]
5631, 55a1i 28 . . . . . . 7 |- T. |= [[A\x:* \y:* y:*B] = B]
5747, 52, 56eqtri 85 . . . . . 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 92 . . . . . . . 8 |- [f:(* -> (* -> *)) = \x:* \y:* y:*] |= [[T.f:(* -> (* -> *))T.] = [T.\x:* \y:* y:*T.]]
6034, 23eqid 73 . . . . . . . . . 10 |- [x:* = T.] |= [y:* = y:*]
6136id 25 . . . . . . . . . 10 |- [y:* = T.] |= [y:* = T.]
6223, 31, 31, 60, 61ovl 107 . . . . . . . . 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 85 . . . . . . 7 |- [f:(* -> (* -> *)) = \x:* \y:* y:*] |= [[T.f:(* -> (* -> *))T.] = T.]
6532, 46, 64cl 106 . . . . . 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 87 . . . 4 |- [A /\ B] |= [B = T.]
685, 67mpbir 77 . . 3 |- [A /\ B] |= B
6944, 68jca 18 . 2 |- [A /\ B] |= (A, B)
702, 3simpl 22 . . . . . . 7 |- (A, B) |= A
7170eqtru 76 . . . . . 6 |- (A, B) |= [T. = A]
722, 3simpr 23 . . . . . . 7 |- (A, B) |= B
7372eqtru 76 . . . . . 6 |- (A, B) |= [T. = B]
746, 31, 31, 71, 73oveq12 90 . . . . 5 |- (A, B) |= [[T.f:(* -> (* -> *))T.] = [Af:(* -> (* -> *))B]]
7532, 74eqcomi 70 . . . 4 |- (A, B) |= [[Af:(* -> (* -> *))B] = [T.f:(* -> (* -> *))T.]]
767, 75leq 81 . . 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 77 . 2 |- (A, B) |= [A /\ B]
8069, 79dedi 75 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 109
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-refl 39  ax-eqmp 42  ax-ded 43  ax-ceq 46  ax-beta 60  ax-distrc 61  ax-leq 62  ax-distrl 63  ax-hbl1 93  ax-17 95  ax-inst 103
This theorem depends on definitions:  df-ov 65  df-an 118
This theorem is referenced by:  hbct  145  mpd  146  ex  148
  Copyright terms: Public domain W3C validator