equal
deleted
inserted
replaced
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 |