doc-src/AxClass/out
changeset 8905 4f0f79fe41b9
parent 8904 0bb77c5b86cc
child 8906 fc7841f31388
equal deleted inserted replaced
8904:0bb77c5b86cc 8905:4f0f79fe41b9
     1 
       
     2 - assoc;
       
     3 val it =
       
     4   "(?x::?'a::semigroup) <*> (?y::?'a::semigroup) <*> (?z::?'a::semigroup) =
       
     5    ?x <*> (?y <*> ?z)" : thm
       
     6 - left_unit;
       
     7 val it = "1 <*> (?x::?'a::group) = ?x" : thm
       
     8 - left_inv;
       
     9 val it = "inv (?x::?'a::group) <*> ?x = 1" : thm
       
    10 - commut;
       
    11 val it = "(?x::?'a::agroup) <*> (?y::?'a::agroup) = ?y <*> ?x" : thm
       
    12 
       
    13 
       
    14 - right_unit;
       
    15 val it = "(?x::?'a::group) <*> 1 = ?x" : thm
       
    16 - right_inv;
       
    17 val it = "(?x::?'a::group) <*> inv ?x = 1" : thm
       
    18 - inv_product;
       
    19 val it = "inv ((?x::?'a::group) <*> (?y::?'a::group)) = inv ?y <*> inv ?x"
       
    20   : thm
       
    21 - inv_inv;
       
    22 val it = "inv (inv (?x::?'a::group)) = ?x" : thm
       
    23 - ex1_inv;
       
    24 val it = "ALL x::?'a::group. EX! y::?'a::group. y <*> x = 1" : thm
       
    25 
       
    26 
       
    27 - groupI;
       
    28 val it =
       
    29   "[| OFCLASS(?'a::term, semigroup_class); !!x::?'a::term. 1 <*> x = x;
       
    30       !!x::?'a::term. inv x <*> x = 1 |] ==> OFCLASS(?'a::term, group_class)"
       
    31   : thm
       
    32 
       
    33 
       
    34 - open AxClass;
       
    35 - goal_arity Xor.thy ("bool", [], "agroup");
       
    36 Level 0
       
    37 OFCLASS(bool, agroup_class)
       
    38  1. OFCLASS(bool, agroup_class)
       
    39 val it = [] : thm list
       
    40 - by (axclass_tac Xor.thy []);
       
    41 Level 1
       
    42 OFCLASS(bool, agroup_class)
       
    43  1. !!(x::bool) (y::bool) z::bool. x <*> y <*> z = x <*> (y <*> z)
       
    44  2. !!x::bool. 1 <*> x = x
       
    45  3. !!x::bool. inv x <*> x = 1
       
    46  4. !!(x::bool) y::bool. x <*> y = y <*> x
       
    47 val it = () : unit
       
    48 
       
    49 - by (rewrite_goals_tac [Xor.prod_bool_def, Xor.inv_bool_def, Xor.unit_bool_def]);
       
    50 Level 2
       
    51 OFCLASS(bool, agroup_class)
       
    52  1. !!(x::bool) (y::bool) z::bool. x ~= y ~= z = (x ~= (y ~= z))
       
    53  2. !!x::bool. False ~= x = x
       
    54  3. !!x::bool. x ~= x = False
       
    55  4. !!(x::bool) y::bool. x ~= y = (y ~= x)
       
    56 val it = () : unit
       
    57 - by (ALLGOALS (fast_tac HOL_cs));
       
    58 Level 3
       
    59 OFCLASS(bool, agroup_class)
       
    60 No subgoals!
       
    61 val it = () : unit
       
    62 - qed "bool_in_agroup";
       
    63 val bool_in_agroup = "OFCLASS(bool, agroup_class)" : thm
       
    64 val it = () : unit
       
    65 
       
    66 
       
    67 - Product.productI;
       
    68 val it =
       
    69   "OFCLASS(?'a::logic, term_class) ==> OFCLASS(?'a::logic, product_class)"
       
    70   : thm