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

Theorem ac 197
Description: Defining property of the indefinite descriptor: it selects an element from any type. This is equivalent to global choice in ZF. (Contributed by Mario Carneiro, 10-Oct-2014.)
Hypotheses
Ref Expression
ac.1 |- F:(al -> *)
ac.2 |- A:al
Assertion
Ref Expression
ac |- (FA) |= (F(@F))

Proof of Theorem ac
Dummy variables x p are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 ac.1 . . 3 |- F:(al -> *)
2 wat 193 . . . 4 |- @:((al -> *) -> al)
32, 1wc 50 . . 3 |- (@F):al
41, 3wc 50 . 2 |- (F(@F)):*
5 ac.2 . . . 4 |- A:al
61, 5wc 50 . . 3 |- (FA):*
76id 25 . 2 |- (FA) |= (FA)
87ax-cb1 29 . . 3 |- (FA):*
9 ax-ac 196 . . . . 5 |- T. |= (A.\p:(al -> *) (A.\x:al [(p:(al -> *)x:al) ==> (p:(al -> *)(@p:(al -> *)))]))
10 wal 134 . . . . . . 7 |- A.:((al -> *) -> *)
11 wim 137 . . . . . . . . 9 |- ==> :(* -> (* -> *))
12 wv 64 . . . . . . . . . 10 |- p:(al -> *):(al -> *)
13 wv 64 . . . . . . . . . 10 |- x:al:al
1412, 13wc 50 . . . . . . . . 9 |- (p:(al -> *)x:al):*
152, 12wc 50 . . . . . . . . . 10 |- (@p:(al -> *)):al
1612, 15wc 50 . . . . . . . . 9 |- (p:(al -> *)(@p:(al -> *))):*
1711, 14, 16wov 72 . . . . . . . 8 |- [(p:(al -> *)x:al) ==> (p:(al -> *)(@p:(al -> *)))]:*
1817wl 66 . . . . . . 7 |- \x:al [(p:(al -> *)x:al) ==> (p:(al -> *)(@p:(al -> *)))]:(al -> *)
1910, 18wc 50 . . . . . 6 |- (A.\x:al [(p:(al -> *)x:al) ==> (p:(al -> *)(@p:(al -> *)))]):*
2012, 1weqi 76 . . . . . . . . . . 11 |- [p:(al -> *) = F]:*
2120id 25 . . . . . . . . . 10 |- [p:(al -> *) = F] |= [p:(al -> *) = F]
2212, 13, 21ceq1 89 . . . . . . . . 9 |- [p:(al -> *) = F] |= [(p:(al -> *)x:al) = (Fx:al)]
232, 12, 21ceq2 90 . . . . . . . . . 10 |- [p:(al -> *) = F] |= [(@p:(al -> *)) = (@F)]
2412, 15, 21, 23ceq12 88 . . . . . . . . 9 |- [p:(al -> *) = F] |= [(p:(al -> *)(@p:(al -> *))) = (F(@F))]
2511, 14, 16, 22, 24oveq12 100 . . . . . . . 8 |- [p:(al -> *) = F] |= [[(p:(al -> *)x:al) ==> (p:(al -> *)(@p:(al -> *)))] = [(Fx:al) ==> (F(@F))]]
2617, 25leq 91 . . . . . . 7 |- [p:(al -> *) = F] |= [\x:al [(p:(al -> *)x:al) ==> (p:(al -> *)(@p:(al -> *)))] = \x:al [(Fx:al) ==> (F(@F))]]
2710, 18, 26ceq2 90 . . . . . 6 |- [p:(al -> *) = F] |= [(A.\x:al [(p:(al -> *)x:al) ==> (p:(al -> *)(@p:(al -> *)))]) = (A.\x:al [(Fx:al) ==> (F(@F))])]
2819, 1, 27cla4v 152 . . . . 5 |- (A.\p:(al -> *) (A.\x:al [(p:(al -> *)x:al) ==> (p:(al -> *)(@p:(al -> *)))])) |= (A.\x:al [(Fx:al) ==> (F(@F))])
299, 28syl 16 . . . 4 |- T. |= (A.\x:al [(Fx:al) ==> (F(@F))])
3017, 25eqtypi 78 . . . . 5 |- [(Fx:al) ==> (F(@F))]:*
311, 13wc 50 . . . . . 6 |- (Fx:al):*
3213, 5weqi 76 . . . . . . . 8 |- [x:al = A]:*
3332id 25 . . . . . . 7 |- [x:al = A] |= [x:al = A]
341, 13, 33ceq2 90 . . . . . 6 |- [x:al = A] |= [(Fx:al) = (FA)]
3511, 31, 4, 34oveq1 99 . . . . 5 |- [x:al = A] |= [[(Fx:al) ==> (F(@F))] = [(FA) ==> (F(@F))]]
3630, 5, 35cla4v 152 . . . 4 |- (A.\x:al [(Fx:al) ==> (F(@F))]) |= [(FA) ==> (F(@F))]
3729, 36syl 16 . . 3 |- T. |= [(FA) ==> (F(@F))]
388, 37a1i 28 . 2 |- (FA) |= [(FA) ==> (F(@F))]
394, 7, 38mpd 156 1 |- (FA) |= (F(@F))
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   |= wffMMJ2 11  wffMMJ2t 12   ==> tim 121  A.tal 122  @tat 191
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  ax-wat 192  ax-ac 196
This theorem depends on definitions:  df-ov 73  df-al 126  df-an 128  df-im 129
This theorem is referenced by:  dfex2  198  exmid  199
  Copyright terms: Public domain W3C validator