src/HOL/ex/Argo_Examples.thy
changeset 64927 a5a09855e424
parent 63960 3daf02070be5
child 66301 8a6a89d6cf2b
--- a/src/HOL/ex/Argo_Examples.thy	Fri Jan 20 17:22:54 2017 +0100
+++ b/src/HOL/ex/Argo_Examples.thy	Fri Jan 20 21:05:11 2017 +0100
@@ -145,6 +145,10 @@
      and "~(d | False) | c"
      and "~(c | (~p & (p | (q & ~q))))"
   then have "False" by argo
+next
+  have "(True & True & True) = True" by argo
+next
+  have "(False | False | False) = False" by argo
 end
 
 
@@ -322,11 +326,16 @@
     "2 * a = a * 2"
     "2 * a * 3 = 6 * a"
     "2 * a * 3 * 5 = 30 * a"
+    "2 * (a * (3 * 5)) = 30 * a"
     "a * 0 * b = 0"
     "a * (0 * b) = 0"
+    "a * b = b * a"
+    "a * b * a = b * a * a"
     "a * (b * c) = (a * b) * c"
     "a * (b * (c * d)) = ((a * b) * c) * d"
+    "a * (b * (c * d)) = ((d * c) * b) * a"
     "a * (b + c + d) = a * b + a * c + a * d"
+    "(a + b + c) * d = a * d + b * d + c * d"
     by argo+
 end
 
@@ -335,7 +344,7 @@
 
 notepad
 begin
-  fix a b c :: real
+  fix a b c d :: real
   have
     "(6::real) / 2 = 3"
     "a / 0 = a / 0"
@@ -345,12 +354,19 @@
     "a / 1 = a"
     "a / 3 = 1/3 * a"
     "6 * a / 2 = 3 * a"
+    "(6 * a) / 2 = 3 * a"
     "a / ((5 * b) / 2) = 2/5 * a / b"
     "a / (5 * (b / 2)) = 2/5 * a / b"
     "(a / 5) * (b / 2) = 1/10 * a * b"
     "a / (3 * b) = 1/3 * a / b"
     "(a + b) / 5 = 1/5 * a + 1/5 * b"
     "a / (5 * 1/5) = a"
+    "a * (b / c) = (b * a) / c"
+    "(a / b) * c = (c * a) / b"
+    "(a / b) / (c / d) = (a * d) / (c * b)"
+    "1 / (a * b) = 1 / (b * a)"
+    "a / (3 * b) = 1 / 3 * a / b"
+    "(a + b + c) / d = a / d + b / d + c / d"
     by argo+
 end