src/FOL/ex/LocaleTest.thy
changeset 15624 484178635bd8
parent 15598 4ab52355bb53
child 15696 1da4ce092c0b
equal deleted inserted replaced
15623:8b40f741597c 15624:484178635bd8
    18 interpretation test [simp]: L + M a b c [x y z] .
    18 interpretation test [simp]: L + M a b c [x y z] .
    19 
    19 
    20 print_interps L
    20 print_interps L
    21 print_interps M
    21 print_interps M
    22 
    22 
    23 interpretation test [simp]: L .
    23 interpretation test [simp]: L print_interps M .
    24 
    24 
    25 interpretation L .
    25 interpretation L .
    26 
    26 
    27 (* processing of locale expression *)
    27 (* processing of locale expression *)
    28 
    28 
    50   (* both X and Y get type 'b since 'b is the internal type of parameter b,
    50   (* both X and Y get type 'b since 'b is the internal type of parameter b,
    51      not wanted, but put up with for now. *)
    51      not wanted, but put up with for now. *)
    52 
    52 
    53 print_interps A
    53 print_interps A
    54 
    54 
    55 (*
    55 (* possible accesses
    56 thm asm_A a.asm_A p1.a.asm_A
    56 thm p1.a.asm_A thm LocaleTest.p1.a.asm_A
       
    57 thm LocaleTest.asm_A thm p1.asm_A
       
    58 *)
       
    59 
       
    60 (* without prefix *)
       
    61 
       
    62 interpretation C ["W::'b" "Z::'b"] by (auto intro: A.intro C_axioms.intro)
       
    63 
       
    64 print_interps A
       
    65 
       
    66 (* possible accesses
       
    67 thm a.asm_A thm asm_A thm LocaleTest.a.asm_A thm LocaleTest.asm_A
    57 *)
    68 *)
    58 
    69 
    59 interpretation p2: D [X Y "Y = X"] by (auto intro: A.intro simp: eq_commute)
    70 interpretation p2: D [X Y "Y = X"] by (auto intro: A.intro simp: eq_commute)
    60 
    71 
    61 print_interps D
    72 print_interps D
    62 
    73 
    63 (*
    74 (*
    64 thm p2.a.asm_A
    75 thm p2.a.asm_A
    65 *)
    76 *)
    66 
    77 
    67 interpretation p3: D [X Y] by (auto intro: A.intro)
    78 interpretation p3: D [X Y] .
    68 
    79 
    69 (* duplicate: not registered *)
    80 (* duplicate: not registered *)
    70 (*
    81 (*
    71 thm p3.a.asm_A
    82 thm p3.a.asm_A
    72 *)
    83 *)
    85 (* without a prefix *)
    96 (* without a prefix *)
    86 (* TODO!!!
    97 (* TODO!!!
    87 interpretation A [Z] apply - apply (auto intro: A.intro) done
    98 interpretation A [Z] apply - apply (auto intro: A.intro) done
    88 *)
    99 *)
    89 
   100 
       
   101 theorem True
       
   102 proof -
       
   103   fix alpha::i and beta::i and gamma::i
       
   104   assume "A(alpha)"
       
   105   then interpret p5: A [alpha] .
       
   106   print_interps A
       
   107   interpret p6: C [alpha beta] by (auto intro: C_axioms.intro)
       
   108   print_interps A   (* p6 not added! *)
       
   109   print_interps C
       
   110 qed rule
       
   111 
       
   112 (* lemma "bla.bla": True by rule *)
       
   113 
       
   114 
    90 end
   115 end