src/FOL/ex/Locale_Test/Locale_Test1.thy
changeset 38108 b4115423c049
parent 37146 f652333bbf8e
child 38109 06fd1914b902
equal deleted inserted replaced
38107:3a46cebd7983 38108:b4115423c049
   712   then interpret local_free: lgrp "op +" zero "minus" for zero
   712   then interpret local_free: lgrp "op +" zero "minus" for zero
   713     by unfold_locales
   713     by unfold_locales
   714   thm local_free.lone [where ?zero = 0]
   714   thm local_free.lone [where ?zero = 0]
   715 qed
   715 qed
   716 
   716 
   717 end
   717 lemma True
       
   718 proof
       
   719   {
       
   720     fix pand and pnot and por
       
   721     assume passoc: "!!x y z. pand(pand(x, y), z) <-> pand(x, pand(y, z))"
       
   722       and pnotnot: "!!x. pnot(pnot(x)) <-> x"
       
   723       and por_def: "!!x y. por(x, y) <-> pnot(pand(pnot(x), pnot(y)))"
       
   724     interpret loc: logic_o pand pnot
       
   725       where por_eq: "!!x y. logic_o.lor_o(pand, pnot, x, y) <-> por(x, y)"  (* FIXME *)
       
   726     proof -
       
   727       show logic_o: "PROP logic_o(pand, pnot)" using passoc pnotnot by unfold_locales
       
   728       fix x y
       
   729       show "logic_o.lor_o(pand, pnot, x, y) <-> por(x, y)"
       
   730         by (unfold logic_o.lor_o_def [OF logic_o]) (rule por_def [symmetric])
       
   731     qed
       
   732     print_interps logic_o  (* FIXME *)
       
   733     thm loc.lor_o_def por_eq
       
   734     have "!!x y. por(x, y) <-> pnot(pand(pnot(x), pnot(y)))" by (rule loc.lor_o_def)
       
   735   }
       
   736 qed
       
   737 
       
   738 end