[STATEMENT]
lemma l13_var:
  "- - (- x \<sqinter> y) = - x \<sqinter> - - y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 1: "\<And>x y . x \<le> y \<longleftrightarrow> x \<squnion> y = y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. (x \<le> y) = (x \<squnion> y = y)
[PROOF STEP]
by (simp add: il_less_eq)
[PROOF STATE]
proof (state)
this:
(?x \<le> ?y) = (?x \<squnion> ?y = ?y)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 4: "\<And>x y . \<not>(x \<le> y) \<or> x \<squnion> y = y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. \<not> x \<le> y \<or> x \<squnion> y = y
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
(?x \<le> ?y) = (?x \<squnion> ?y = ?y)

goal (1 subgoal):
 1. \<And>x y. \<not> x \<le> y \<or> x \<squnion> y = y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
\<not> ?x \<le> ?y \<or> ?x \<squnion> ?y = ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 5: "\<And>x y z . (x \<sqinter> y) \<squnion> (x \<sqinter> z) \<le> x \<sqinter> (y \<squnion> z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> y \<squnion> x \<sqinter> z \<le> x \<sqinter> (y \<squnion> z)
[PROOF STEP]
by (simp add: il_sub_inf_right_isotone_var)
[PROOF STATE]
proof (state)
this:
?x \<sqinter> ?y \<squnion> ?x \<sqinter> ?z \<le> ?x \<sqinter> (?y \<squnion> ?z)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 6: "\<And>x y . - - x \<le> - (- x \<sqinter> y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - x \<le> - (- x \<sqinter> y)
[PROOF STEP]
by (simp add: pad2)
[PROOF STATE]
proof (state)
this:
- - ?x \<le> - (- ?x \<sqinter> ?y)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 7: "\<And>x y z . x \<squnion> (y \<squnion> z) = (x \<squnion> y) \<squnion> z"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<squnion> (y \<squnion> z) = x \<squnion> y \<squnion> z
[PROOF STEP]
by (simp add: il_associative)
[PROOF STATE]
proof (state)
this:
?x \<squnion> (?y \<squnion> ?z) = ?x \<squnion> ?y \<squnion> ?z

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 8: "\<And>x y z . (x \<squnion> y) \<squnion> z = x \<squnion> (y \<squnion> z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<squnion> y \<squnion> z = x \<squnion> (y \<squnion> z)
[PROOF STEP]
using 7
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> (?y \<squnion> ?z) = ?x \<squnion> ?y \<squnion> ?z

goal (1 subgoal):
 1. \<And>x y z. x \<squnion> y \<squnion> z = x \<squnion> (y \<squnion> z)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<squnion> ?y \<squnion> ?z = ?x \<squnion> (?y \<squnion> ?z)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 9: "\<And>x y . x \<squnion> y = y \<squnion> x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. x \<squnion> y = y \<squnion> x
[PROOF STEP]
by (simp add: il_commutative)
[PROOF STATE]
proof (state)
this:
?x \<squnion> ?y = ?y \<squnion> ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 10: "\<And>x . x \<squnion> bot = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. x \<squnion> bot = x
[PROOF STEP]
by (simp add: il_bot_unit)
[PROOF STATE]
proof (state)
this:
?x \<squnion> bot = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 11: "\<And>x . x \<squnion> x = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. x \<squnion> x = x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
?x \<squnion> ?x = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 12: "\<And>x y z . x \<sqinter> (y \<sqinter> z) = (x \<sqinter> y) \<sqinter> z"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> (y \<sqinter> z) = x \<sqinter> y \<sqinter> z
[PROOF STEP]
by (simp add: il_inf_associative)
[PROOF STATE]
proof (state)
this:
?x \<sqinter> (?y \<sqinter> ?z) = ?x \<sqinter> ?y \<sqinter> ?z

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 13: "\<And>x y z . (x \<sqinter> y) \<sqinter> z = x \<sqinter> (y \<sqinter> z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> y \<sqinter> z = x \<sqinter> (y \<sqinter> z)
[PROOF STEP]
using 12
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> (?y \<sqinter> ?z) = ?x \<sqinter> ?y \<sqinter> ?z

goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> y \<sqinter> z = x \<sqinter> (y \<sqinter> z)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<sqinter> ?y \<sqinter> ?z = ?x \<sqinter> (?y \<sqinter> ?z)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 14: "\<And>x . top \<sqinter> x = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. top \<sqinter> x = x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
top \<sqinter> ?x = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 15: "\<And>x . x \<sqinter> top = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. x \<sqinter> top = x
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
?x \<sqinter> top = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 16: "\<And>x y z . (x \<squnion> y) \<sqinter> z = (x \<sqinter> z) \<squnion> (y \<sqinter> z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. (x \<squnion> y) \<sqinter> z = x \<sqinter> z \<squnion> y \<sqinter> z
[PROOF STEP]
by (simp add: il_inf_right_dist_sup)
[PROOF STATE]
proof (state)
this:
(?x \<squnion> ?y) \<sqinter> ?z = ?x \<sqinter> ?z \<squnion> ?y \<sqinter> ?z

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 17: "\<And>x y z . (x \<sqinter> y) \<squnion> (z \<sqinter> y) = (x \<squnion> z) \<sqinter> y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> y \<squnion> z \<sqinter> y = (x \<squnion> z) \<sqinter> y
[PROOF STEP]
using 16
[PROOF STATE]
proof (prove)
using this:
(?x \<squnion> ?y) \<sqinter> ?z = ?x \<sqinter> ?z \<squnion> ?y \<sqinter> ?z

goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> y \<squnion> z \<sqinter> y = (x \<squnion> z) \<sqinter> y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<sqinter> ?y \<squnion> ?z \<sqinter> ?y = (?x \<squnion> ?z) \<sqinter> ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 19: "\<And>x . - x \<squnion> - - x = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. - x \<squnion> - - x = top
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
- ?x \<squnion> - - ?x = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 20: "\<And>x . - x \<sqinter> x = bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. - x \<sqinter> x = bot
[PROOF STEP]
by (simp add: a_inf_complement_bot)
[PROOF STATE]
proof (state)
this:
- ?x \<sqinter> ?x = bot

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 22: "\<And>x y z . ((x \<sqinter> y) \<squnion> (x \<sqinter> z)) \<squnion> (x \<sqinter> (y \<squnion> z)) = x \<sqinter> (y \<squnion> z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> y \<squnion> x \<sqinter> z \<squnion> x \<sqinter> (y \<squnion> z) = x \<sqinter> (y \<squnion> z)
[PROOF STEP]
using 4 5
[PROOF STATE]
proof (prove)
using this:
\<not> ?x \<le> ?y \<or> ?x \<squnion> ?y = ?y
?x \<sqinter> ?y \<squnion> ?x \<sqinter> ?z \<le> ?x \<sqinter> (?y \<squnion> ?z)

goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> y \<squnion> x \<sqinter> z \<squnion> x \<sqinter> (y \<squnion> z) = x \<sqinter> (y \<squnion> z)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<sqinter> ?y \<squnion> ?x \<sqinter> ?z \<squnion> ?x \<sqinter> (?y \<squnion> ?z) = ?x \<sqinter> (?y \<squnion> ?z)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 23: "\<And>x y z . (x \<sqinter> (y \<squnion> z)) \<squnion> ((x \<sqinter> y) \<squnion> (x \<sqinter> z)) = x \<sqinter> (y \<squnion> z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> (y \<squnion> z) \<squnion> (x \<sqinter> y \<squnion> x \<sqinter> z) = x \<sqinter> (y \<squnion> z)
[PROOF STEP]
using 9 22
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
?x \<sqinter> ?y \<squnion> ?x \<sqinter> ?z \<squnion> ?x \<sqinter> (?y \<squnion> ?z) = ?x \<sqinter> (?y \<squnion> ?z)

goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> (y \<squnion> z) \<squnion> (x \<sqinter> y \<squnion> x \<sqinter> z) = x \<sqinter> (y \<squnion> z)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<sqinter> (?y \<squnion> ?z) \<squnion> (?x \<sqinter> ?y \<squnion> ?x \<sqinter> ?z) = ?x \<sqinter> (?y \<squnion> ?z)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 24: "\<And>x y . - - x \<squnion> - (- x \<sqinter> y) = - (- x \<sqinter> y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - x \<squnion> - (- x \<sqinter> y) = - (- x \<sqinter> y)
[PROOF STEP]
using 4 6
[PROOF STATE]
proof (prove)
using this:
\<not> ?x \<le> ?y \<or> ?x \<squnion> ?y = ?y
- - ?x \<le> - (- ?x \<sqinter> ?y)

goal (1 subgoal):
 1. \<And>x y. - - x \<squnion> - (- x \<sqinter> y) = - (- x \<sqinter> y)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - ?x \<squnion> - (- ?x \<sqinter> ?y) = - (- ?x \<sqinter> ?y)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 25: "\<And>x y z . x \<squnion> (y \<squnion> z) = y \<squnion> (x \<squnion> z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<squnion> (y \<squnion> z) = y \<squnion> (x \<squnion> z)
[PROOF STEP]
using 8 9
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y \<squnion> ?z = ?x \<squnion> (?y \<squnion> ?z)
?x \<squnion> ?y = ?y \<squnion> ?x

goal (1 subgoal):
 1. \<And>x y z. x \<squnion> (y \<squnion> z) = y \<squnion> (x \<squnion> z)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<squnion> (?y \<squnion> ?z) = ?y \<squnion> (?x \<squnion> ?z)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 26: "\<And>x y z . (x \<sqinter> y) \<squnion> ((x \<sqinter> z) \<squnion> (x \<sqinter> (y \<squnion> z))) = x \<sqinter> (y \<squnion> z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> y \<squnion> (x \<sqinter> z \<squnion> x \<sqinter> (y \<squnion> z)) = x \<sqinter> (y \<squnion> z)
[PROOF STEP]
using 9 23 25
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
?x \<sqinter> (?y \<squnion> ?z) \<squnion> (?x \<sqinter> ?y \<squnion> ?x \<sqinter> ?z) = ?x \<sqinter> (?y \<squnion> ?z)
?x \<squnion> (?y \<squnion> ?z) = ?y \<squnion> (?x \<squnion> ?z)

goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> y \<squnion> (x \<sqinter> z \<squnion> x \<sqinter> (y \<squnion> z)) = x \<sqinter> (y \<squnion> z)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<sqinter> ?y \<squnion> (?x \<sqinter> ?z \<squnion> ?x \<sqinter> (?y \<squnion> ?z)) = ?x \<sqinter> (?y \<squnion> ?z)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 29: "\<And>x . bot \<squnion> x = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. bot \<squnion> x = x
[PROOF STEP]
using 9 10
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
?x \<squnion> bot = ?x

goal (1 subgoal):
 1. \<And>x. bot \<squnion> x = x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
bot \<squnion> ?x = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 30: "\<And>x y . x \<squnion> (x \<squnion> y) = x \<squnion> y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. x \<squnion> (x \<squnion> y) = x \<squnion> y
[PROOF STEP]
using 8 11
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y \<squnion> ?z = ?x \<squnion> (?y \<squnion> ?z)
?x \<squnion> ?x = ?x

goal (1 subgoal):
 1. \<And>x y. x \<squnion> (x \<squnion> y) = x \<squnion> y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<squnion> (?x \<squnion> ?y) = ?x \<squnion> ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 34: "\<And>u x y z . (x \<sqinter> (y \<sqinter> z)) \<squnion> (u \<sqinter> z) = ((x \<sqinter> y) \<squnion> u) \<sqinter> z"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>u x y z. x \<sqinter> (y \<sqinter> z) \<squnion> u \<sqinter> z = (x \<sqinter> y \<squnion> u) \<sqinter> z
[PROOF STEP]
using 13 17
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<sqinter> ?z = ?x \<sqinter> (?y \<sqinter> ?z)
?x \<sqinter> ?y \<squnion> ?z \<sqinter> ?y = (?x \<squnion> ?z) \<sqinter> ?y

goal (1 subgoal):
 1. \<And>u x y z. x \<sqinter> (y \<sqinter> z) \<squnion> u \<sqinter> z = (x \<sqinter> y \<squnion> u) \<sqinter> z
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<sqinter> (?y \<sqinter> ?z) \<squnion> ?u \<sqinter> ?z = (?x \<sqinter> ?y \<squnion> ?u) \<sqinter> ?z

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 35: "\<And>u x y z . (x \<sqinter> y) \<squnion> (z \<sqinter> (u \<sqinter> y)) = (x \<squnion> (z \<sqinter> u)) \<sqinter> y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>u x y z. x \<sqinter> y \<squnion> z \<sqinter> (u \<sqinter> y) = (x \<squnion> z \<sqinter> u) \<sqinter> y
[PROOF STEP]
using 13 17
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<sqinter> ?z = ?x \<sqinter> (?y \<sqinter> ?z)
?x \<sqinter> ?y \<squnion> ?z \<sqinter> ?y = (?x \<squnion> ?z) \<sqinter> ?y

goal (1 subgoal):
 1. \<And>u x y z. x \<sqinter> y \<squnion> z \<sqinter> (u \<sqinter> y) = (x \<squnion> z \<sqinter> u) \<sqinter> y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<sqinter> ?y \<squnion> ?z \<sqinter> (?u \<sqinter> ?y) = (?x \<squnion> ?z \<sqinter> ?u) \<sqinter> ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 38: "\<And>x y . - x \<squnion> (- - x \<squnion> y) = top \<squnion> y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<squnion> (- - x \<squnion> y) = top \<squnion> y
[PROOF STEP]
using 8 19
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y \<squnion> ?z = ?x \<squnion> (?y \<squnion> ?z)
- ?x \<squnion> - - ?x = top

goal (1 subgoal):
 1. \<And>x y. - x \<squnion> (- - x \<squnion> y) = top \<squnion> y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<squnion> (- - ?x \<squnion> ?y) = top \<squnion> ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 41: "- top = bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - top = bot
[PROOF STEP]
using 15 20
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> top = ?x
- ?x \<sqinter> ?x = bot

goal (1 subgoal):
 1. - top = bot
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- top = bot

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 42: "\<And>x y . (- x \<squnion> y) \<sqinter> x = y \<sqinter> x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. (- x \<squnion> y) \<sqinter> x = y \<sqinter> x
[PROOF STEP]
using 17 20 29
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<squnion> ?z \<sqinter> ?y = (?x \<squnion> ?z) \<sqinter> ?y
- ?x \<sqinter> ?x = bot
bot \<squnion> ?x = ?x

goal (1 subgoal):
 1. \<And>x y. (- x \<squnion> y) \<sqinter> x = y \<sqinter> x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
(- ?x \<squnion> ?y) \<sqinter> ?x = ?y \<sqinter> ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 43: "\<And>x y . (x \<squnion> - y) \<sqinter> y = x \<sqinter> y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. (x \<squnion> - y) \<sqinter> y = x \<sqinter> y
[PROOF STEP]
using 9 17 20 29
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
?x \<sqinter> ?y \<squnion> ?z \<sqinter> ?y = (?x \<squnion> ?z) \<sqinter> ?y
- ?x \<sqinter> ?x = bot
bot \<squnion> ?x = ?x

goal (1 subgoal):
 1. \<And>x y. (x \<squnion> - y) \<sqinter> y = x \<sqinter> y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
(?x \<squnion> - ?y) \<sqinter> ?y = ?x \<sqinter> ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 45: "\<And>x . - bot \<squnion> - - x = - bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. - bot \<squnion> - - x = - bot
[PROOF STEP]
using 9 20 24
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
- ?x \<sqinter> ?x = bot
- - ?x \<squnion> - (- ?x \<sqinter> ?y) = - (- ?x \<sqinter> ?y)

goal (1 subgoal):
 1. \<And>x. - bot \<squnion> - - x = - bot
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- bot \<squnion> - - ?x = - bot

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 49: "- bot = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - bot = top
[PROOF STEP]
using 19 29 41
[PROOF STATE]
proof (prove)
using this:
- ?x \<squnion> - - ?x = top
bot \<squnion> ?x = ?x
- top = bot

goal (1 subgoal):
 1. - bot = top
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- bot = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 50: "\<And>x . top \<squnion> - - x = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. top \<squnion> - - x = top
[PROOF STEP]
using 45 49
[PROOF STATE]
proof (prove)
using this:
- bot \<squnion> - - ?x = - bot
- bot = top

goal (1 subgoal):
 1. \<And>x. top \<squnion> - - x = top
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
top \<squnion> - - ?x = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 62: "\<And>x y . x \<squnion> ((x \<sqinter> - y) \<squnion> (x \<sqinter> - - y)) = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. x \<squnion> (x \<sqinter> - y \<squnion> x \<sqinter> - - y) = x
[PROOF STEP]
using 9 15 19 25 26
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
?x \<sqinter> top = ?x
- ?x \<squnion> - - ?x = top
?x \<squnion> (?y \<squnion> ?z) = ?y \<squnion> (?x \<squnion> ?z)
?x \<sqinter> ?y \<squnion> (?x \<sqinter> ?z \<squnion> ?x \<sqinter> (?y \<squnion> ?z)) = ?x \<sqinter> (?y \<squnion> ?z)

goal (1 subgoal):
 1. \<And>x y. x \<squnion> (x \<sqinter> - y \<squnion> x \<sqinter> - - y) = x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<squnion> (?x \<sqinter> - ?y \<squnion> ?x \<sqinter> - - ?y) = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 65: "\<And>x y . (- (x \<squnion> y) \<sqinter> x) \<squnion> (- (x \<squnion> y) \<sqinter> y) = bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (x \<squnion> y) \<sqinter> x \<squnion> - (x \<squnion> y) \<sqinter> y = bot
[PROOF STEP]
using 9 20 26 29
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
- ?x \<sqinter> ?x = bot
?x \<sqinter> ?y \<squnion> (?x \<sqinter> ?z \<squnion> ?x \<sqinter> (?y \<squnion> ?z)) = ?x \<sqinter> (?y \<squnion> ?z)
bot \<squnion> ?x = ?x

goal (1 subgoal):
 1. \<And>x y. - (x \<squnion> y) \<sqinter> x \<squnion> - (x \<squnion> y) \<sqinter> y = bot
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (?x \<squnion> ?y) \<sqinter> ?x \<squnion> - (?x \<squnion> ?y) \<sqinter> ?y = bot

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 66: "\<And>x y z . (x \<sqinter> - - y) \<squnion> (x \<sqinter> - (- y \<sqinter> z)) = x \<sqinter> - (- y \<sqinter> z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> - - y \<squnion> x \<sqinter> - (- y \<sqinter> z) = x \<sqinter> - (- y \<sqinter> z)
[PROOF STEP]
using 11 24 26
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?x = ?x
- - ?x \<squnion> - (- ?x \<sqinter> ?y) = - (- ?x \<sqinter> ?y)
?x \<sqinter> ?y \<squnion> (?x \<sqinter> ?z \<squnion> ?x \<sqinter> (?y \<squnion> ?z)) = ?x \<sqinter> (?y \<squnion> ?z)

goal (1 subgoal):
 1. \<And>x y z. x \<sqinter> - - y \<squnion> x \<sqinter> - (- y \<sqinter> z) = x \<sqinter> - (- y \<sqinter> z)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<sqinter> - - ?y \<squnion> ?x \<sqinter> - (- ?y \<sqinter> ?z) = ?x \<sqinter> - (- ?y \<sqinter> ?z)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 69: "\<And>x y . x \<squnion> (x \<sqinter> - - y) = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. x \<squnion> x \<sqinter> - - y = x
[PROOF STEP]
using 9 15 26 30 50
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
?x \<sqinter> top = ?x
?x \<sqinter> ?y \<squnion> (?x \<sqinter> ?z \<squnion> ?x \<sqinter> (?y \<squnion> ?z)) = ?x \<sqinter> (?y \<squnion> ?z)
?x \<squnion> (?x \<squnion> ?y) = ?x \<squnion> ?y
top \<squnion> - - ?x = top

goal (1 subgoal):
 1. \<And>x y. x \<squnion> x \<sqinter> - - y = x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<squnion> ?x \<sqinter> - - ?y = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 81: "\<And>x . top \<squnion> - x = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. top \<squnion> - x = top
[PROOF STEP]
using 9 19 30
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
- ?x \<squnion> - - ?x = top
?x \<squnion> (?x \<squnion> ?y) = ?x \<squnion> ?y

goal (1 subgoal):
 1. \<And>x. top \<squnion> - x = top
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
top \<squnion> - ?x = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 88: "\<And>x y . x \<squnion> (- y \<sqinter> x) = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. x \<squnion> - y \<sqinter> x = x
[PROOF STEP]
using 14 17 81
[PROOF STATE]
proof (prove)
using this:
top \<sqinter> ?x = ?x
?x \<sqinter> ?y \<squnion> ?z \<sqinter> ?y = (?x \<squnion> ?z) \<sqinter> ?y
top \<squnion> - ?x = top

goal (1 subgoal):
 1. \<And>x y. x \<squnion> - y \<sqinter> x = x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<squnion> - ?y \<sqinter> ?x = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 101: "\<And>x y z . x \<squnion> (y \<squnion> (x \<sqinter> - - z)) = y \<squnion> x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. x \<squnion> (y \<squnion> x \<sqinter> - - z) = y \<squnion> x
[PROOF STEP]
using 25 69
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> (?y \<squnion> ?z) = ?y \<squnion> (?x \<squnion> ?z)
?x \<squnion> ?x \<sqinter> - - ?y = ?x

goal (1 subgoal):
 1. \<And>x y z. x \<squnion> (y \<squnion> x \<sqinter> - - z) = y \<squnion> x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<squnion> (?y \<squnion> ?x \<sqinter> - - ?z) = ?y \<squnion> ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 103: "\<And>x y . x \<squnion> (x \<sqinter> - y) = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. x \<squnion> x \<sqinter> - y = x
[PROOF STEP]
using 9 62 101
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
?x \<squnion> (?x \<sqinter> - ?y \<squnion> ?x \<sqinter> - - ?y) = ?x
?x \<squnion> (?y \<squnion> ?x \<sqinter> - - ?z) = ?y \<squnion> ?x

goal (1 subgoal):
 1. \<And>x y. x \<squnion> x \<sqinter> - y = x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
?x \<squnion> ?x \<sqinter> - ?y = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 123: "\<And>x . - - x \<sqinter> x = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. - - x \<sqinter> x = x
[PROOF STEP]
using 14 19 42
[PROOF STATE]
proof (prove)
using this:
top \<sqinter> ?x = ?x
- ?x \<squnion> - - ?x = top
(- ?x \<squnion> ?y) \<sqinter> ?x = ?y \<sqinter> ?x

goal (1 subgoal):
 1. \<And>x. - - x \<sqinter> x = x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - ?x \<sqinter> ?x = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 127: "\<And>x y . - - x \<sqinter> (x \<sqinter> y) = x \<sqinter> y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - x \<sqinter> (x \<sqinter> y) = x \<sqinter> y
[PROOF STEP]
using 13 123
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<sqinter> ?z = ?x \<sqinter> (?y \<sqinter> ?z)
- - ?x \<sqinter> ?x = ?x

goal (1 subgoal):
 1. \<And>x y. - - x \<sqinter> (x \<sqinter> y) = x \<sqinter> y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - ?x \<sqinter> (?x \<sqinter> ?y) = ?x \<sqinter> ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 130: "\<And>x . - x \<squnion> - - - x = - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. - x \<squnion> - - - x = - x
[PROOF STEP]
using 9 24 123
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
- - ?x \<squnion> - (- ?x \<sqinter> ?y) = - (- ?x \<sqinter> ?y)
- - ?x \<sqinter> ?x = ?x

goal (1 subgoal):
 1. \<And>x. - x \<squnion> - - - x = - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<squnion> - - - ?x = - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 132: "\<And>x . - - - x = - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. - - - x = - x
[PROOF STEP]
using 9 103 123 130
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
?x \<squnion> ?x \<sqinter> - ?y = ?x
- - ?x \<sqinter> ?x = ?x
- ?x \<squnion> - - - ?x = - ?x

goal (1 subgoal):
 1. \<And>x. - - - x = - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - - ?x = - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 136: "\<And>x y . (- x \<squnion> y) \<sqinter> - - x = y \<sqinter> - - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. (- x \<squnion> y) \<sqinter> - - x = y \<sqinter> - - x
[PROOF STEP]
using 42 132
[PROOF STATE]
proof (prove)
using this:
(- ?x \<squnion> ?y) \<sqinter> ?x = ?y \<sqinter> ?x
- - - ?x = - ?x

goal (1 subgoal):
 1. \<And>x y. (- x \<squnion> y) \<sqinter> - - x = y \<sqinter> - - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
(- ?x \<squnion> ?y) \<sqinter> - - ?x = ?y \<sqinter> - - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 144: "\<And>x y z . ((- (x \<sqinter> y) \<sqinter> x) \<squnion> z) \<sqinter> y = z \<sqinter> y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. (- (x \<sqinter> y) \<sqinter> x \<squnion> z) \<sqinter> y = z \<sqinter> y
[PROOF STEP]
using 20 29 34
[PROOF STATE]
proof (prove)
using this:
- ?x \<sqinter> ?x = bot
bot \<squnion> ?x = ?x
?x \<sqinter> (?y \<sqinter> ?z) \<squnion> ?u \<sqinter> ?z = (?x \<sqinter> ?y \<squnion> ?u) \<sqinter> ?z

goal (1 subgoal):
 1. \<And>x y z. (- (x \<sqinter> y) \<sqinter> x \<squnion> z) \<sqinter> y = z \<sqinter> y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
(- (?x \<sqinter> ?y) \<sqinter> ?x \<squnion> ?z) \<sqinter> ?y = ?z \<sqinter> ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 182: "\<And>x y z . (x \<squnion> (- - (y \<sqinter> z) \<sqinter> y)) \<sqinter> z = (x \<squnion> y) \<sqinter> z"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. (x \<squnion> - - (y \<sqinter> z) \<sqinter> y) \<sqinter> z = (x \<squnion> y) \<sqinter> z
[PROOF STEP]
using 17 35 123
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<squnion> ?z \<sqinter> ?y = (?x \<squnion> ?z) \<sqinter> ?y
?x \<sqinter> ?y \<squnion> ?z \<sqinter> (?u \<sqinter> ?y) = (?x \<squnion> ?z \<sqinter> ?u) \<sqinter> ?y
- - ?x \<sqinter> ?x = ?x

goal (1 subgoal):
 1. \<And>x y z. (x \<squnion> - - (y \<sqinter> z) \<sqinter> y) \<sqinter> z = (x \<squnion> y) \<sqinter> z
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
(?x \<squnion> - - (?y \<sqinter> ?z) \<sqinter> ?y) \<sqinter> ?z = (?x \<squnion> ?y) \<sqinter> ?z

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 288: "\<And>x y . - x \<squnion> - (- x \<sqinter> y) = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - (- x \<sqinter> y) = top
[PROOF STEP]
using 24 38 81
[PROOF STATE]
proof (prove)
using this:
- - ?x \<squnion> - (- ?x \<sqinter> ?y) = - (- ?x \<sqinter> ?y)
- ?x \<squnion> (- - ?x \<squnion> ?y) = top \<squnion> ?y
top \<squnion> - ?x = top

goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - (- x \<sqinter> y) = top
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<squnion> - (- ?x \<sqinter> ?y) = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 315: "\<And>x y . - (- x \<sqinter> y) \<sqinter> x = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> y) \<sqinter> x = x
[PROOF STEP]
using 14 42 288
[PROOF STATE]
proof (prove)
using this:
top \<sqinter> ?x = ?x
(- ?x \<squnion> ?y) \<sqinter> ?x = ?y \<sqinter> ?x
- ?x \<squnion> - (- ?x \<sqinter> ?y) = top

goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> y) \<sqinter> x = x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (- ?x \<sqinter> ?y) \<sqinter> ?x = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 319: "\<And>x y . - x \<squnion> - - (- x \<sqinter> y) = - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - - (- x \<sqinter> y) = - x
[PROOF STEP]
using 9 24 315
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
- - ?x \<squnion> - (- ?x \<sqinter> ?y) = - (- ?x \<sqinter> ?y)
- (- ?x \<sqinter> ?y) \<sqinter> ?x = ?x

goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - - (- x \<sqinter> y) = - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<squnion> - - (- ?x \<sqinter> ?y) = - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 387: "\<And>x y . - (x \<sqinter> y) \<sqinter> - x = - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (x \<sqinter> y) \<sqinter> - x = - x
[PROOF STEP]
using 127 315
[PROOF STATE]
proof (prove)
using this:
- - ?x \<sqinter> (?x \<sqinter> ?y) = ?x \<sqinter> ?y
- (- ?x \<sqinter> ?y) \<sqinter> ?x = ?x

goal (1 subgoal):
 1. \<And>x y. - (x \<sqinter> y) \<sqinter> - x = - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (?x \<sqinter> ?y) \<sqinter> - ?x = - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 405: "\<And>x y z . - (x \<sqinter> (y \<sqinter> z)) \<sqinter> - (x \<sqinter> y) = - (x \<sqinter> y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. - (x \<sqinter> (y \<sqinter> z)) \<sqinter> - (x \<sqinter> y) = - (x \<sqinter> y)
[PROOF STEP]
using 13 387
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<sqinter> ?z = ?x \<sqinter> (?y \<sqinter> ?z)
- (?x \<sqinter> ?y) \<sqinter> - ?x = - ?x

goal (1 subgoal):
 1. \<And>x y z. - (x \<sqinter> (y \<sqinter> z)) \<sqinter> - (x \<sqinter> y) = - (x \<sqinter> y)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (?x \<sqinter> (?y \<sqinter> ?z)) \<sqinter> - (?x \<sqinter> ?y) = - (?x \<sqinter> ?y)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 419: "\<And>x y . - x \<sqinter> - - (- x \<sqinter> y) = - - (- x \<sqinter> y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - - (- x \<sqinter> y) = - - (- x \<sqinter> y)
[PROOF STEP]
using 315 387
[PROOF STATE]
proof (prove)
using this:
- (- ?x \<sqinter> ?y) \<sqinter> ?x = ?x
- (?x \<sqinter> ?y) \<sqinter> - ?x = - ?x

goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - - (- x \<sqinter> y) = - - (- x \<sqinter> y)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<sqinter> - - (- ?x \<sqinter> ?y) = - - (- ?x \<sqinter> ?y)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 1091: "\<And>x y . - (x \<squnion> y) \<sqinter> x = bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (x \<squnion> y) \<sqinter> x = bot
[PROOF STEP]
using 9 29 30 65
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
bot \<squnion> ?x = ?x
?x \<squnion> (?x \<squnion> ?y) = ?x \<squnion> ?y
- (?x \<squnion> ?y) \<sqinter> ?x \<squnion> - (?x \<squnion> ?y) \<sqinter> ?y = bot

goal (1 subgoal):
 1. \<And>x y. - (x \<squnion> y) \<sqinter> x = bot
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (?x \<squnion> ?y) \<sqinter> ?x = bot

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 1129: "\<And>x y z . (- (x \<squnion> y) \<squnion> z) \<sqinter> x = z \<sqinter> x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y z. (- (x \<squnion> y) \<squnion> z) \<sqinter> x = z \<sqinter> x
[PROOF STEP]
using 17 29 1091
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<squnion> ?z \<sqinter> ?y = (?x \<squnion> ?z) \<sqinter> ?y
bot \<squnion> ?x = ?x
- (?x \<squnion> ?y) \<sqinter> ?x = bot

goal (1 subgoal):
 1. \<And>x y z. (- (x \<squnion> y) \<squnion> z) \<sqinter> x = z \<sqinter> x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
(- (?x \<squnion> ?y) \<squnion> ?z) \<sqinter> ?x = ?z \<sqinter> ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 1155: "\<And>x y . - - x \<sqinter> - (- x \<sqinter> y) = - - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - x \<sqinter> - (- x \<sqinter> y) = - - x
[PROOF STEP]
using 66 103 123 132
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> - - ?y \<squnion> ?x \<sqinter> - (- ?y \<sqinter> ?z) = ?x \<sqinter> - (- ?y \<sqinter> ?z)
?x \<squnion> ?x \<sqinter> - ?y = ?x
- - ?x \<sqinter> ?x = ?x
- - - ?x = - ?x

goal (1 subgoal):
 1. \<And>x y. - - x \<sqinter> - (- x \<sqinter> y) = - - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - ?x \<sqinter> - (- ?x \<sqinter> ?y) = - - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 2097: "\<And>x y . - - (x \<squnion> y) \<sqinter> x = x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - (x \<squnion> y) \<sqinter> x = x
[PROOF STEP]
using 14 19 1129
[PROOF STATE]
proof (prove)
using this:
top \<sqinter> ?x = ?x
- ?x \<squnion> - - ?x = top
(- (?x \<squnion> ?y) \<squnion> ?z) \<sqinter> ?x = ?z \<sqinter> ?x

goal (1 subgoal):
 1. \<And>x y. - - (x \<squnion> y) \<sqinter> x = x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - (?x \<squnion> ?y) \<sqinter> ?x = ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 2124: "\<And>x y . - - (x \<squnion> y) \<sqinter> y = y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - (x \<squnion> y) \<sqinter> y = y
[PROOF STEP]
using 9 2097
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
- - (?x \<squnion> ?y) \<sqinter> ?x = ?x

goal (1 subgoal):
 1. \<And>x y. - - (x \<squnion> y) \<sqinter> y = y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - (?x \<squnion> ?y) \<sqinter> ?y = ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 2137: "\<And>x y . - x \<squnion> - - (x \<squnion> y) = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - - (x \<squnion> y) = top
[PROOF STEP]
using 9 288 2097
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
- ?x \<squnion> - (- ?x \<sqinter> ?y) = top
- - (?x \<squnion> ?y) \<sqinter> ?x = ?x

goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - - (x \<squnion> y) = top
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<squnion> - - (?x \<squnion> ?y) = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 2201: "\<And>x y . - x \<squnion> - - (y \<squnion> x) = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - - (y \<squnion> x) = top
[PROOF STEP]
using 9 288 2124
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
- ?x \<squnion> - (- ?x \<sqinter> ?y) = top
- - (?x \<squnion> ?y) \<sqinter> ?y = ?y

goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - - (y \<squnion> x) = top
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<squnion> - - (?y \<squnion> ?x) = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 2343: "\<And>x y . - (- x \<sqinter> y) \<squnion> - - y = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> y) \<squnion> - - y = top
[PROOF STEP]
using 88 2201
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> - ?y \<sqinter> ?x = ?x
- ?x \<squnion> - - (?y \<squnion> ?x) = top

goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> y) \<squnion> - - y = top
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (- ?x \<sqinter> ?y) \<squnion> - - ?y = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 3022: "\<And>x y . - x \<squnion> - (- y \<sqinter> - x) = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - (- y \<sqinter> - x) = top
[PROOF STEP]
using 9 132 2343
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
- - - ?x = - ?x
- (- ?x \<sqinter> ?y) \<squnion> - - ?y = top

goal (1 subgoal):
 1. \<And>x y. - x \<squnion> - (- y \<sqinter> - x) = top
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<squnion> - (- ?y \<sqinter> - ?x) = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 3133: "\<And>x y . - (- x \<sqinter> - y) \<sqinter> y = y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> - y) \<sqinter> y = y
[PROOF STEP]
using 14 42 3022
[PROOF STATE]
proof (prove)
using this:
top \<sqinter> ?x = ?x
(- ?x \<squnion> ?y) \<sqinter> ?x = ?y \<sqinter> ?x
- ?x \<squnion> - (- ?y \<sqinter> - ?x) = top

goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> - y) \<sqinter> y = y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (- ?x \<sqinter> - ?y) \<sqinter> ?y = ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 3134: "\<And>x y . - x \<sqinter> (- y \<sqinter> - x) = - y \<sqinter> - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> (- y \<sqinter> - x) = - y \<sqinter> - x
[PROOF STEP]
using 14 43 3022
[PROOF STATE]
proof (prove)
using this:
top \<sqinter> ?x = ?x
(?x \<squnion> - ?y) \<sqinter> ?y = ?x \<sqinter> ?y
- ?x \<squnion> - (- ?y \<sqinter> - ?x) = top

goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> (- y \<sqinter> - x) = - y \<sqinter> - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<sqinter> (- ?y \<sqinter> - ?x) = - ?y \<sqinter> - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 3961: "\<And>x y . - - (x \<squnion> y) \<sqinter> - - x = - - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - (x \<squnion> y) \<sqinter> - - x = - - x
[PROOF STEP]
using 14 136 2137
[PROOF STATE]
proof (prove)
using this:
top \<sqinter> ?x = ?x
(- ?x \<squnion> ?y) \<sqinter> - - ?x = ?y \<sqinter> - - ?x
- ?x \<squnion> - - (?x \<squnion> ?y) = top

goal (1 subgoal):
 1. \<And>x y. - - (x \<squnion> y) \<sqinter> - - x = - - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - (?x \<squnion> ?y) \<sqinter> - - ?x = - - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 9413: "\<And>x y . - - (- x \<sqinter> y) \<sqinter> y = - x \<sqinter> y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - (- x \<sqinter> y) \<sqinter> y = - x \<sqinter> y
[PROOF STEP]
using 9 103 182 319
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> ?y = ?y \<squnion> ?x
?x \<squnion> ?x \<sqinter> - ?y = ?x
(?x \<squnion> - - (?y \<sqinter> ?z) \<sqinter> ?y) \<sqinter> ?z = (?x \<squnion> ?y) \<sqinter> ?z
- ?x \<squnion> - - (- ?x \<sqinter> ?y) = - ?x

goal (1 subgoal):
 1. \<And>x y. - - (- x \<sqinter> y) \<sqinter> y = - x \<sqinter> y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - (- ?x \<sqinter> ?y) \<sqinter> ?y = - ?x \<sqinter> ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 12370: "\<And>x y . - x \<sqinter> - (- - x \<sqinter> y) = - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - (- - x \<sqinter> y) = - x
[PROOF STEP]
using 132 1155
[PROOF STATE]
proof (prove)
using this:
- - - ?x = - ?x
- - ?x \<sqinter> - (- ?x \<sqinter> ?y) = - - ?x

goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - (- - x \<sqinter> y) = - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<sqinter> - (- - ?x \<sqinter> ?y) = - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 12376: "\<And>x y . - x \<sqinter> - (x \<sqinter> y) = - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - (x \<sqinter> y) = - x
[PROOF STEP]
using 127 132 1155
[PROOF STATE]
proof (prove)
using this:
- - ?x \<sqinter> (?x \<sqinter> ?y) = ?x \<sqinter> ?y
- - - ?x = - ?x
- - ?x \<sqinter> - (- ?x \<sqinter> ?y) = - - ?x

goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - (x \<sqinter> y) = - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<sqinter> - (?x \<sqinter> ?y) = - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 12383: "\<And>x y . - (x \<squnion> y) \<sqinter> - y = - (x \<squnion> y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (x \<squnion> y) \<sqinter> - y = - (x \<squnion> y)
[PROOF STEP]
using 132 1155 2124
[PROOF STATE]
proof (prove)
using this:
- - - ?x = - ?x
- - ?x \<sqinter> - (- ?x \<sqinter> ?y) = - - ?x
- - (?x \<squnion> ?y) \<sqinter> ?y = ?y

goal (1 subgoal):
 1. \<And>x y. - (x \<squnion> y) \<sqinter> - y = - (x \<squnion> y)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (?x \<squnion> ?y) \<sqinter> - ?y = - (?x \<squnion> ?y)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 12393: "\<And>x y . - - (- x \<sqinter> - y) = - x \<sqinter> - y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - (- x \<sqinter> - y) = - x \<sqinter> - y
[PROOF STEP]
using 1155 3133 9413
[PROOF STATE]
proof (prove)
using this:
- - ?x \<sqinter> - (- ?x \<sqinter> ?y) = - - ?x
- (- ?x \<sqinter> - ?y) \<sqinter> ?y = ?y
- - (- ?x \<sqinter> ?y) \<sqinter> ?y = - ?x \<sqinter> ?y

goal (1 subgoal):
 1. \<And>x y. - - (- x \<sqinter> - y) = - x \<sqinter> - y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - (- ?x \<sqinter> - ?y) = - ?x \<sqinter> - ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 12639: "\<And>x y . - x \<sqinter> - (- y \<sqinter> x) = - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - (- y \<sqinter> x) = - x
[PROOF STEP]
using 88 12383
[PROOF STATE]
proof (prove)
using this:
?x \<squnion> - ?y \<sqinter> ?x = ?x
- (?x \<squnion> ?y) \<sqinter> - ?y = - (?x \<squnion> ?y)

goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - (- y \<sqinter> x) = - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<sqinter> - (- ?y \<sqinter> ?x) = - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 24647: "\<And>x y . (- x \<sqinter> - y) \<squnion> - (- x \<sqinter> - y) = top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - y \<squnion> - (- x \<sqinter> - y) = top
[PROOF STEP]
using 19 12393
[PROOF STATE]
proof (prove)
using this:
- ?x \<squnion> - - ?x = top
- - (- ?x \<sqinter> - ?y) = - ?x \<sqinter> - ?y

goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - y \<squnion> - (- x \<sqinter> - y) = top
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<sqinter> - ?y \<squnion> - (- ?x \<sqinter> - ?y) = top

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 28338: "\<And>x y . - (- - (x \<sqinter> y) \<sqinter> x) = - (x \<sqinter> y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (- - (x \<sqinter> y) \<sqinter> x) = - (x \<sqinter> y)
[PROOF STEP]
using 123 405 12370
[PROOF STATE]
proof (prove)
using this:
- - ?x \<sqinter> ?x = ?x
- (?x \<sqinter> (?y \<sqinter> ?z)) \<sqinter> - (?x \<sqinter> ?y) = - (?x \<sqinter> ?y)
- ?x \<sqinter> - (- - ?x \<sqinter> ?y) = - ?x

goal (1 subgoal):
 1. \<And>x y. - (- - (x \<sqinter> y) \<sqinter> x) = - (x \<sqinter> y)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (- - (?x \<sqinter> ?y) \<sqinter> ?x) = - (?x \<sqinter> ?y)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 28422: "\<And>x y . - (- x \<sqinter> - y) = - (- y \<sqinter> - x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> - y) = - (- y \<sqinter> - x)
[PROOF STEP]
using 13 3134 12393 28338
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<sqinter> ?z = ?x \<sqinter> (?y \<sqinter> ?z)
- ?x \<sqinter> (- ?y \<sqinter> - ?x) = - ?y \<sqinter> - ?x
- - (- ?x \<sqinter> - ?y) = - ?x \<sqinter> - ?y
- (- - (?x \<sqinter> ?y) \<sqinter> ?x) = - (?x \<sqinter> ?y)

goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> - y) = - (- y \<sqinter> - x)
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (- ?x \<sqinter> - ?y) = - (- ?y \<sqinter> - ?x)

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 28485: "\<And>x y . - x \<sqinter> - y = - y \<sqinter> - x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - y = - y \<sqinter> - x
[PROOF STEP]
using 2097 3961 12393 28422
[PROOF STATE]
proof (prove)
using this:
- - (?x \<squnion> ?y) \<sqinter> ?x = ?x
- - (?x \<squnion> ?y) \<sqinter> - - ?x = - - ?x
- - (- ?x \<sqinter> - ?y) = - ?x \<sqinter> - ?y
- (- ?x \<sqinter> - ?y) = - (- ?y \<sqinter> - ?x)

goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - y = - y \<sqinter> - x
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<sqinter> - ?y = - ?y \<sqinter> - ?x

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 52421: "\<And>x y . - (- x \<sqinter> - (- x \<sqinter> y)) \<sqinter> y = y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> - (- x \<sqinter> y)) \<sqinter> y = y
[PROOF STEP]
using 14 144 24647 28485
[PROOF STATE]
proof (prove)
using this:
top \<sqinter> ?x = ?x
(- (?x \<sqinter> ?y) \<sqinter> ?x \<squnion> ?z) \<sqinter> ?y = ?z \<sqinter> ?y
- ?x \<sqinter> - ?y \<squnion> - (- ?x \<sqinter> - ?y) = top
- ?x \<sqinter> - ?y = - ?y \<sqinter> - ?x

goal (1 subgoal):
 1. \<And>x y. - (- x \<sqinter> - (- x \<sqinter> y)) \<sqinter> y = y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- (- ?x \<sqinter> - (- ?x \<sqinter> ?y)) \<sqinter> ?y = ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 52520: "\<And>x y . - x \<sqinter> - (- x \<sqinter> y) = - x \<sqinter> - y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - (- x \<sqinter> y) = - x \<sqinter> - y
[PROOF STEP]
using 13 12376 12393 12639 28485 52421
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<sqinter> ?z = ?x \<sqinter> (?y \<sqinter> ?z)
- ?x \<sqinter> - (?x \<sqinter> ?y) = - ?x
- - (- ?x \<sqinter> - ?y) = - ?x \<sqinter> - ?y
- ?x \<sqinter> - (- ?y \<sqinter> ?x) = - ?x
- ?x \<sqinter> - ?y = - ?y \<sqinter> - ?x
- (- ?x \<sqinter> - (- ?x \<sqinter> ?y)) \<sqinter> ?y = ?y

goal (1 subgoal):
 1. \<And>x y. - x \<sqinter> - (- x \<sqinter> y) = - x \<sqinter> - y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- ?x \<sqinter> - (- ?x \<sqinter> ?y) = - ?x \<sqinter> - ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
have 61156: "\<And>x y . - - (- x \<sqinter> y) = - x \<sqinter> - - y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x y. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
using 419 52520
[PROOF STATE]
proof (prove)
using this:
- ?x \<sqinter> - - (- ?x \<sqinter> ?y) = - - (- ?x \<sqinter> ?y)
- ?x \<sqinter> - (- ?x \<sqinter> ?y) = - ?x \<sqinter> - ?y

goal (1 subgoal):
 1. \<And>x y. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - (- ?x \<sqinter> ?y) = - ?x \<sqinter> - - ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
using 61156
[PROOF STATE]
proof (prove)
using this:
- - (- ?x \<sqinter> ?y) = - ?x \<sqinter> - - ?y

goal (1 subgoal):
 1. - - (- x \<sqinter> y) = - x \<sqinter> - - y
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
- - (- x \<sqinter> y) = - x \<sqinter> - - y

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma Cantor_dec_Cons_iff [simp]: "Cantor_dec (\<alpha>#\<beta>#\<beta>s) \<longleftrightarrow> \<beta> < \<alpha> \<and> Cantor_dec (\<beta>#\<beta>s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sorted_wrt (\<lambda>x y. y < x) (\<alpha> # \<beta> # \<beta>s) = (\<beta> < \<alpha> \<and> sorted_wrt (\<lambda>x y. y < x) (\<beta> # \<beta>s))
[PROOF STEP]
by auto


[STATEMENT]
lemma subst_cls_mset_empty_iff[simp]: "CC \<cdot>cm \<eta> = {#} \<longleftrightarrow> CC = {#}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (CC \<cdot>cm \<eta> = {#}) = (CC = {#})
[PROOF STEP]
unfolding subst_cls_mset_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ({#A \<cdot> \<eta>. A \<in># CC#} = {#}) = (CC = {#})
[PROOF STEP]
by auto


[STATEMENT]
lemma of_nat_mono_maybe_le:
  "\<lbrakk>x < 2 ^ LENGTH('a); y < 2 ^ LENGTH('a)\<rbrakk> \<Longrightarrow>
  (y \<le> x) = ((of_nat y :: 'a :: len word) \<le> of_nat x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>x < 2 ^ LENGTH('a); y < 2 ^ LENGTH('a)\<rbrakk> \<Longrightarrow> (y \<le> x) = (word_of_nat y \<le> word_of_nat x)
[PROOF STEP]
apply (clarsimp simp: le_less)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>x < 2 ^ LENGTH('a); y < 2 ^ LENGTH('a)\<rbrakk> \<Longrightarrow> (y < x \<or> y = x) = (word_of_nat y < word_of_nat x \<or> word_of_nat y = word_of_nat x)
[PROOF STEP]
apply (rule disj_cong)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>x < 2 ^ LENGTH('a); y < 2 ^ LENGTH('a)\<rbrakk> \<Longrightarrow> (y < x) = (word_of_nat y < word_of_nat x)
 2. \<lbrakk>x < 2 ^ LENGTH('a); y < 2 ^ LENGTH('a); \<not> word_of_nat y < word_of_nat x\<rbrakk> \<Longrightarrow> (y = x) = (word_of_nat y = word_of_nat x)
[PROOF STEP]
apply (rule of_nat_mono_maybe', assumption+)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>x < 2 ^ LENGTH('a); y < 2 ^ LENGTH('a); \<not> word_of_nat y < word_of_nat x\<rbrakk> \<Longrightarrow> (y = x) = (word_of_nat y = word_of_nat x)
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>x < 2 ^ LENGTH('a); y < 2 ^ LENGTH('a); word_of_nat y = word_of_nat x\<rbrakk> \<Longrightarrow> y = x
[PROOF STEP]
using of_nat_inj
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>?x < 2 ^ LENGTH(?'a); ?y < 2 ^ LENGTH(?'a)\<rbrakk> \<Longrightarrow> (word_of_nat ?x = word_of_nat ?y) = (?x = ?y)

goal (1 subgoal):
 1. \<lbrakk>x < 2 ^ LENGTH('a); y < 2 ^ LENGTH('a); word_of_nat y = word_of_nat x\<rbrakk> \<Longrightarrow> y = x
[PROOF STEP]
apply blast
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma ccw'_sorted_scaleR: "ccw'.sortedP 0 xs \<Longrightarrow> r > 0 \<Longrightarrow> ccw'.sortedP 0 (map ((*\<^sub>R) r) xs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>ccw'.sortedP 0 xs; 0 < r\<rbrakk> \<Longrightarrow> ccw'.sortedP 0 (map ((*\<^sub>R) r) xs)
[PROOF STEP]
by (induct xs) (auto intro!: ccw'.sortedP.Cons  elim!: ccw'.sortedP_Cons simp del: scaleR_Pair)


[STATEMENT]
lemma primes_omega_le_primes_omega_primorial:
  fixes n :: nat
  assumes "n \<le> primorial x"
  shows   "primes_omega n \<le> primes_omega (primorial x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. primes_omega n \<le> primes_omega (primorial x)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. primes_omega n \<le> primes_omega (primorial x)
[PROOF STEP]
consider "n = 0" | "n > 0" "n = primorial x" | "n > 0" "n \<noteq> primorial x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>n = 0 \<Longrightarrow> thesis; \<lbrakk>0 < n; n = primorial x\<rbrakk> \<Longrightarrow> thesis; \<lbrakk>0 < n; n \<noteq> primorial x\<rbrakk> \<Longrightarrow> thesis\<rbrakk> \<Longrightarrow> thesis
[PROOF STEP]
by force
[PROOF STATE]
proof (state)
this:
\<lbrakk>n = 0 \<Longrightarrow> ?thesis; \<lbrakk>0 < n; n = primorial x\<rbrakk> \<Longrightarrow> ?thesis; \<lbrakk>0 < n; n \<noteq> primorial x\<rbrakk> \<Longrightarrow> ?thesis\<rbrakk> \<Longrightarrow> ?thesis

goal (1 subgoal):
 1. primes_omega n \<le> primes_omega (primorial x)
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>n = 0 \<Longrightarrow> ?thesis; \<lbrakk>0 < n; n = primorial x\<rbrakk> \<Longrightarrow> ?thesis; \<lbrakk>0 < n; n \<noteq> primorial x\<rbrakk> \<Longrightarrow> ?thesis\<rbrakk> \<Longrightarrow> ?thesis

goal (1 subgoal):
 1. primes_omega n \<le> primes_omega (primorial x)
[PROOF STEP]
by cases (use primes_omega_less_primes_omega_primorial[of n x] assms in auto)
[PROOF STATE]
proof (state)
this:
primes_omega n \<le> primes_omega (primorial x)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma atoms_of_cnf_alt: "atoms_of_cnf c = \<Union>(((`) atoms_of_lit) ` c)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. atoms_of_cnf c = \<Union> ((`) atoms_of_lit ` c)
[PROOF STEP]
unfolding atoms_of_cnf_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. atoms_of_lit ` \<Union> c = \<Union> ((`) atoms_of_lit ` c)
[PROOF STEP]
by blast


[STATEMENT]
lemma norm_nth_le: "norm (x $ i) \<le> norm x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. norm (x $ i) \<le> norm x
[PROOF STEP]
unfolding norm_vec_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. norm (x $ i) \<le> L2_set (\<lambda>i. norm (x $ i)) UNIV
[PROOF STEP]
by (rule member_le_L2_set) simp_all


[STATEMENT]
lemma ereal_of_enat_sub:
  assumes "n \<le> m"
  shows "ereal_of_enat (m - n) = ereal_of_enat m - ereal_of_enat n "
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ereal_of_enat (m - n) = ereal_of_enat m - ereal_of_enat n
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
n \<le> m

goal (1 subgoal):
 1. ereal_of_enat (m - n) = ereal_of_enat m - ereal_of_enat n
[PROOF STEP]
by (cases m n rule: enat2_cases) auto


[STATEMENT]
lemma AL_delete_commutative: "delete (delete M c) x = delete (delete M x) c"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. delete (delete M c) x = delete (delete M x) c
[PROOF STEP]
apply (induct M)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. delete (delete [] c) x = delete (delete [] x) c
 2. \<And>a M. delete (delete M c) x = delete (delete M x) c \<Longrightarrow> delete (delete (a # M) c) x = delete (delete (a # M) x) c
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>a M. delete (delete M c) x = delete (delete M x) c \<Longrightarrow> delete (delete (a # M) c) x = delete (delete (a # M) x) c
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma all_edges_subset_Pow: "all_edges A \<subseteq> Pow A"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. all_edges A \<subseteq> Pow A
[PROOF STEP]
by (auto simp: all_edges_def)


[STATEMENT]
lemma lc_mult_scalar_monomial_right:
  "lc (p \<odot> monomial c v) = punit.lc p * (c::'b::semiring_no_zero_divisors)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
proof (cases "c = 0")
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. c = (0::'b) \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
 2. c \<noteq> (0::'b) \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
case True
[PROOF STATE]
proof (state)
this:
c = (0::'b)

goal (2 subgoals):
 1. c = (0::'b) \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
 2. c \<noteq> (0::'b) \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
c = (0::'b)

goal (1 subgoal):
 1. lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
lc (p \<odot> monomial c v) = punit.lc p * c

goal (1 subgoal):
 1. c \<noteq> (0::'b) \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. c \<noteq> (0::'b) \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
case False
[PROOF STATE]
proof (state)
this:
c \<noteq> (0::'b)

goal (1 subgoal):
 1. c \<noteq> (0::'b) \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
proof (cases "p = 0")
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. p = 0 \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
 2. p \<noteq> 0 \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
case True
[PROOF STATE]
proof (state)
this:
p = 0

goal (2 subgoals):
 1. p = 0 \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
 2. p \<noteq> 0 \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
p = 0

goal (1 subgoal):
 1. lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
lc (p \<odot> monomial c v) = punit.lc p * c

goal (1 subgoal):
 1. p \<noteq> 0 \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. p \<noteq> 0 \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
case False
[PROOF STATE]
proof (state)
this:
p \<noteq> 0

goal (1 subgoal):
 1. p \<noteq> 0 \<Longrightarrow> lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
with \<open>c \<noteq> 0\<close>
[PROOF STATE]
proof (chain)
picking this:
c \<noteq> (0::'b)
p \<noteq> 0
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
c \<noteq> (0::'b)
p \<noteq> 0

goal (1 subgoal):
 1. lc (p \<odot> monomial c v) = punit.lc p * c
[PROOF STEP]
by (simp add: punit.lc_def lc_def lt_mult_scalar_monomial_right lookup_mult_scalar_monomial_right_plus)
[PROOF STATE]
proof (state)
this:
lc (p \<odot> monomial c v) = punit.lc p * c

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
lc (p \<odot> monomial c v) = punit.lc p * c

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma nullhomotopic_through_contractible_space:
  assumes f: "continuous_map X Y f" and g: "continuous_map Y Z g" and Y: "contractible_space Y"
  obtains c where "homotopic_with (\<lambda>h. True) X Z (g \<circ> f) (\<lambda>x. c)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>c. homotopic_with (\<lambda>h. True) X Z (g \<circ> f) (\<lambda>x. c) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<And>c. homotopic_with (\<lambda>h. True) X Z (g \<circ> f) (\<lambda>x. c) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
obtain b where b: "homotopic_with (\<lambda>x. True) Y Y id (\<lambda>x. b)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>b. homotopic_with (\<lambda>x. True) Y Y id (\<lambda>x. b) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using Y
[PROOF STATE]
proof (prove)
using this:
contractible_space Y

goal (1 subgoal):
 1. (\<And>b. homotopic_with (\<lambda>x. True) Y Y id (\<lambda>x. b) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (auto simp: contractible_space_def)
[PROOF STATE]
proof (state)
this:
homotopic_with (\<lambda>x. True) Y Y id (\<lambda>x. b)

goal (1 subgoal):
 1. (\<And>c. homotopic_with (\<lambda>h. True) X Z (g \<circ> f) (\<lambda>x. c) \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
show thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. thesis
[PROOF STEP]
using homotopic_with_compose_continuous_map_right
           [OF homotopic_with_compose_continuous_map_left [OF b g] f]
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>j. True \<Longrightarrow> ?p (g \<circ> j); \<And>j. ?p j \<Longrightarrow> ?q (j \<circ> f)\<rbrakk> \<Longrightarrow> homotopic_with ?q X Z (g \<circ> id \<circ> f) (g \<circ> (\<lambda>x. b) \<circ> f)

goal (1 subgoal):
 1. thesis
[PROOF STEP]
by (force simp add: that)
[PROOF STATE]
proof (state)
this:
thesis

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma lemma2_6_6_b_one :
assumes "trans r" and "irrefl r" and "(add_mset q M, add_mset q N) \<in> mul_eq r" shows "(M,N) \<in> mul_eq r"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (M, N) \<in> mul_eq r
[PROOF STEP]
using add_left_one[OF lemma2_6_3[OF assms]]
[PROOF STATE]
proof (prove)
using this:
\<exists>I2 J K. N = I2 + J \<and> M = I2 + K \<and> set_mset K \<subseteq> r \<down>m J

goal (1 subgoal):
 1. (M, N) \<in> mul_eq r
[PROOF STEP]
unfolding mul_eq_def
[PROOF STATE]
proof (prove)
using this:
\<exists>I2 J K. N = I2 + J \<and> M = I2 + K \<and> set_mset K \<subseteq> r \<down>m J

goal (1 subgoal):
 1. (M, N) \<in> {(M, N). \<exists>I J K. M = I + K \<and> N = I + J \<and> set_mset K \<subseteq> r \<down>m J}
[PROOF STEP]
by auto


[STATEMENT]
lemma word_le_minus_cancel: "y - x \<le> z - x \<Longrightarrow> x \<le> z \<Longrightarrow> y \<le> z"
  for x y z :: "'a::len word"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>y - x \<le> z - x; x \<le> z\<rbrakk> \<Longrightarrow> y \<le> z
[PROOF STEP]
by uint_arith


[STATEMENT]
lemma inner_Basis_add2:
  "b1 \<in> S \<Longrightarrow> b2 \<in> S \<Longrightarrow> inner_Basis v (b1 + b2) = inner_Basis v b1 + inner_Basis v b2"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>b1 \<in> S; b2 \<in> S\<rbrakk> \<Longrightarrow> local.inner_Basis v (b1 + b2) = local.inner_Basis v b1 + local.inner_Basis v b2
[PROOF STEP]
by (auto simp: std_dual_def restrict0_def algebra_simps representation_add representation_scale
      B inner_Basis_def
      sum.distrib sum_distrib_left)


[STATEMENT]
lemma nonneg_power_less:
  assumes "0 \<le> a" and "0 \<le> b" shows "a^n < b^n \<longleftrightarrow> n > 0 \<and> a < b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (a ^ n < b ^ n) = (0 < n \<and> a < b)
[PROOF STEP]
proof (insert assms, induct n arbitrary: a b)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>a b. \<lbrakk>(0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ 0 < b ^ 0) = (0 < 0 \<and> a < b)
 2. \<And>n a b. \<lbrakk>\<And>a b. \<lbrakk>(0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ n < b ^ n) = (0 < n \<and> a < b); (0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
case 0
[PROOF STATE]
proof (state)
this:
(0::'a) \<le> a
(0::'a) \<le> b

goal (2 subgoals):
 1. \<And>a b. \<lbrakk>(0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ 0 < b ^ 0) = (0 < 0 \<and> a < b)
 2. \<And>n a b. \<lbrakk>\<And>a b. \<lbrakk>(0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ n < b ^ n) = (0 < n \<and> a < b); (0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
(0::'a) \<le> a
(0::'a) \<le> b
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
(0::'a) \<le> a
(0::'a) \<le> b

goal (1 subgoal):
 1. (a ^ 0 < b ^ 0) = (0 < 0 \<and> a < b)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(a ^ 0 < b ^ 0) = (0 < 0 \<and> a < b)

goal (1 subgoal):
 1. \<And>n a b. \<lbrakk>\<And>a b. \<lbrakk>(0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ n < b ^ n) = (0 < n \<and> a < b); (0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>n a b. \<lbrakk>\<And>a b. \<lbrakk>(0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ n < b ^ n) = (0 < n \<and> a < b); (0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
case (Suc n)
[PROOF STATE]
proof (state)
this:
\<lbrakk>(0::'a) \<le> ?a1; (0::'a) \<le> ?b1\<rbrakk> \<Longrightarrow> (?a1 ^ n < ?b1 ^ n) = (0 < n \<and> ?a1 < ?b1)
(0::'a) \<le> a
(0::'a) \<le> b

goal (1 subgoal):
 1. \<And>n a b. \<lbrakk>\<And>a b. \<lbrakk>(0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ n < b ^ n) = (0 < n \<and> a < b); (0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
note a = \<open>0 \<le> a\<close>
[PROOF STATE]
proof (state)
this:
(0::'a) \<le> a

goal (1 subgoal):
 1. \<And>n a b. \<lbrakk>\<And>a b. \<lbrakk>(0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ n < b ^ n) = (0 < n \<and> a < b); (0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
note b = \<open>0 \<le> b\<close>
[PROOF STATE]
proof (state)
this:
(0::'a) \<le> b

goal (1 subgoal):
 1. \<And>n a b. \<lbrakk>\<And>a b. \<lbrakk>(0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ n < b ^ n) = (0 < n \<and> a < b); (0::'a) \<le> a; (0::'a) \<le> b\<rbrakk> \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
proof (cases "n > 0")
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. 0 < n \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
 2. \<not> 0 < n \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
case True
[PROOF STATE]
proof (state)
this:
0 < n

goal (2 subgoals):
 1. 0 < n \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
 2. \<not> 0 < n \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
from a b
[PROOF STATE]
proof (chain)
picking this:
(0::'a) \<le> a
(0::'a) \<le> b
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(0::'a) \<le> a
(0::'a) \<le> b

goal (1 subgoal):
 1. (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
proof (cases rule: nonneg_linorder_cases)
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. a < b \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
 2. a = b \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
 3. b < a \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
case less
[PROOF STATE]
proof (state)
this:
a < b

goal (3 subgoals):
 1. a < b \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
 2. a = b \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
 3. b < a \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
a < b
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
a < b

goal (1 subgoal):
 1. (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
by (auto simp: Suc.hyps[OF a b] True intro!:mult_strict_mono' a b zero_le_power)
[PROOF STATE]
proof (state)
this:
(a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)

goal (2 subgoals):
 1. a = b \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
 2. b < a \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. a = b \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
 2. b < a \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
case eq
[PROOF STATE]
proof (state)
this:
a = b

goal (2 subgoals):
 1. a = b \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
 2. b < a \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
a = b
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
a = b

goal (1 subgoal):
 1. (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)

goal (1 subgoal):
 1. b < a \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. b < a \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
case greater
[PROOF STATE]
proof (state)
this:
b < a

goal (1 subgoal):
 1. b < a \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
with Suc.hyps[OF b a] True
[PROOF STATE]
proof (chain)
picking this:
(b ^ n < a ^ n) = (0 < n \<and> b < a)
0 < n
b < a
[PROOF STEP]
have "b ^ n < a ^ n"
[PROOF STATE]
proof (prove)
using this:
(b ^ n < a ^ n) = (0 < n \<and> b < a)
0 < n
b < a

goal (1 subgoal):
 1. b ^ n < a ^ n
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
b ^ n < a ^ n

goal (1 subgoal):
 1. b < a \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
with mult_strict_mono'[OF greater this] b greater
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>(0::'a) \<le> b; (0::'a) \<le> b ^ n\<rbrakk> \<Longrightarrow> b * b ^ n < a * a ^ n
(0::'a) \<le> b
b < a
b ^ n < a ^ n
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>(0::'a) \<le> b; (0::'a) \<le> b ^ n\<rbrakk> \<Longrightarrow> b * b ^ n < a * a ^ n
(0::'a) \<le> b
b < a
b ^ n < a ^ n

goal (1 subgoal):
 1. (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)

goal (1 subgoal):
 1. \<not> 0 < n \<Longrightarrow> (a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)
[PROOF STEP]
qed auto
[PROOF STATE]
proof (state)
this:
(a ^ Suc n < b ^ Suc n) = (0 < Suc n \<and> a < b)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma equiv_up_closed_subset:
  assumes "up_closed A"
      and "equiv B C"
    shows "B \<subseteq> A \<longleftrightarrow> C \<subseteq> A" (is "?B \<longleftrightarrow> ?C")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (B \<subseteq> A) = (C \<subseteq> A)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (B \<subseteq> A) = (C \<subseteq> A)
[PROOF STEP]
have "?B \<Longrightarrow> ?C"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. B \<subseteq> A \<Longrightarrow> C \<subseteq> A
[PROOF STEP]
by (meson greater_set_def up_closed_def equiv_def assms(1) assms(2) subsetD subsetI)
[PROOF STATE]
proof (state)
this:
B \<subseteq> A \<Longrightarrow> C \<subseteq> A

goal (1 subgoal):
 1. (B \<subseteq> A) = (C \<subseteq> A)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
B \<subseteq> A \<Longrightarrow> C \<subseteq> A

goal (1 subgoal):
 1. (B \<subseteq> A) = (C \<subseteq> A)
[PROOF STEP]
have "?C \<Longrightarrow> ?B"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. C \<subseteq> A \<Longrightarrow> B \<subseteq> A
[PROOF STEP]
by (meson greater_set_def up_closed_def equiv_def assms(1) assms(2) subsetD subsetI)
[PROOF STATE]
proof (state)
this:
C \<subseteq> A \<Longrightarrow> B \<subseteq> A

goal (1 subgoal):
 1. (B \<subseteq> A) = (C \<subseteq> A)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
B \<subseteq> A \<Longrightarrow> C \<subseteq> A
C \<subseteq> A \<Longrightarrow> B \<subseteq> A
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
B \<subseteq> A \<Longrightarrow> C \<subseteq> A
C \<subseteq> A \<Longrightarrow> B \<subseteq> A

goal (1 subgoal):
 1. (B \<subseteq> A) = (C \<subseteq> A)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
(B \<subseteq> A) = (C \<subseteq> A)

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma (in vectorspace) subspace_refl [intro]: "V \<unlhd> V"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Subspace.subspace V V
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. V \<noteq> {}
 2. V \<subseteq> V
 3. \<And>x y. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> x + y \<in> V
 4. \<And>x a. x \<in> V \<Longrightarrow> a \<cdot> x \<in> V
[PROOF STEP]
show "V \<noteq> {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. V \<noteq> {}
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
V \<noteq> {}

goal (3 subgoals):
 1. V \<subseteq> V
 2. \<And>x y. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> x + y \<in> V
 3. \<And>x a. x \<in> V \<Longrightarrow> a \<cdot> x \<in> V
[PROOF STEP]
show "V \<subseteq> V"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. V \<subseteq> V
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
V \<subseteq> V

goal (2 subgoals):
 1. \<And>x y. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> x + y \<in> V
 2. \<And>x a. x \<in> V \<Longrightarrow> a \<cdot> x \<in> V
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>x y. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> x + y \<in> V
 2. \<And>x a. x \<in> V \<Longrightarrow> a \<cdot> x \<in> V
[PROOF STEP]
fix x y
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>x y. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> x + y \<in> V
 2. \<And>x a. x \<in> V \<Longrightarrow> a \<cdot> x \<in> V
[PROOF STEP]
assume x: "x \<in> V" and y: "y \<in> V"
[PROOF STATE]
proof (state)
this:
x \<in> V
y \<in> V

goal (2 subgoals):
 1. \<And>x y. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> x + y \<in> V
 2. \<And>x a. x \<in> V \<Longrightarrow> a \<cdot> x \<in> V
[PROOF STEP]
fix a :: real
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>x y. \<lbrakk>x \<in> V; y \<in> V\<rbrakk> \<Longrightarrow> x + y \<in> V
 2. \<And>x a. x \<in> V \<Longrightarrow> a \<cdot> x \<in> V
[PROOF STEP]
from x y
[PROOF STATE]
proof (chain)
picking this:
x \<in> V
y \<in> V
[PROOF STEP]
show "x + y \<in> V"
[PROOF STATE]
proof (prove)
using this:
x \<in> V
y \<in> V

goal (1 subgoal):
 1. x + y \<in> V
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
x + y \<in> V

goal (1 subgoal):
 1. \<And>x a. x \<in> V \<Longrightarrow> a \<cdot> x \<in> V
[PROOF STEP]
from x
[PROOF STATE]
proof (chain)
picking this:
x \<in> V
[PROOF STEP]
show "a \<cdot> x \<in> V"
[PROOF STATE]
proof (prove)
using this:
x \<in> V

goal (1 subgoal):
 1. a \<cdot> x \<in> V
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
a \<cdot> x \<in> V

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma keys_lead_monom_subset: "keys (lead_monom p) \<subseteq> vars p"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. keys (lead_monom p) \<subseteq> vars p
[PROOF STEP]
proof (cases "p = 0")
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. p = 0 \<Longrightarrow> keys (lead_monom p) \<subseteq> vars p
 2. p \<noteq> 0 \<Longrightarrow> keys (lead_monom p) \<subseteq> vars p
[PROOF STEP]
case False
[PROOF STATE]
proof (state)
this:
p \<noteq> 0

goal (2 subgoals):
 1. p = 0 \<Longrightarrow> keys (lead_monom p) \<subseteq> vars p
 2. p \<noteq> 0 \<Longrightarrow> keys (lead_monom p) \<subseteq> vars p
[PROOF STEP]
hence "lead_coeff p \<noteq> 0"
[PROOF STATE]
proof (prove)
using this:
p \<noteq> 0

goal (1 subgoal):
 1. Symmetric_Polynomials.lead_coeff p \<noteq> (0::'a)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
Symmetric_Polynomials.lead_coeff p \<noteq> (0::'a)

goal (2 subgoals):
 1. p = 0 \<Longrightarrow> keys (lead_monom p) \<subseteq> vars p
 2. p \<noteq> 0 \<Longrightarrow> keys (lead_monom p) \<subseteq> vars p
[PROOF STEP]
hence "coeff p (lead_monom p) \<noteq> 0"
[PROOF STATE]
proof (prove)
using this:
Symmetric_Polynomials.lead_coeff p \<noteq> (0::'a)

goal (1 subgoal):
 1. MPoly_Type.coeff p (lead_monom p) \<noteq> (0::'a)
[PROOF STEP]
unfolding lead_coeff_def
[PROOF STATE]
proof (prove)
using this:
MPoly_Type.coeff p (lead_monom p) \<noteq> (0::'a)

goal (1 subgoal):
 1. MPoly_Type.coeff p (lead_monom p) \<noteq> (0::'a)
[PROOF STEP]
.
[PROOF STATE]
proof (state)
this:
MPoly_Type.coeff p (lead_monom p) \<noteq> (0::'a)

goal (2 subgoals):
 1. p = 0 \<Longrightarrow> keys (lead_monom p) \<subseteq> vars p
 2. p \<noteq> 0 \<Longrightarrow> keys (lead_monom p) \<subseteq> vars p
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
MPoly_Type.coeff p (lead_monom p) \<noteq> (0::'a)

goal (1 subgoal):
 1. keys (lead_monom p) \<subseteq> vars p
[PROOF STEP]
unfolding vars_def
[PROOF STATE]
proof (prove)
using this:
MPoly_Type.coeff p (lead_monom p) \<noteq> (0::'a)

goal (1 subgoal):
 1. keys (lead_monom p) \<subseteq> \<Union> (keys ` keys (mapping_of p))
[PROOF STEP]
by transfer' (auto simp: max_def in_keys_iff)
[PROOF STATE]
proof (state)
this:
keys (lead_monom p) \<subseteq> vars p

goal (1 subgoal):
 1. p = 0 \<Longrightarrow> keys (lead_monom p) \<subseteq> vars p
[PROOF STEP]
qed auto


[STATEMENT]
lemma frag_extend_sum:
   "finite I \<Longrightarrow> frag_extend f (\<Sum>i\<in>I. g i) = sum (frag_extend f o g) I"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. finite I \<Longrightarrow> frag_extend f (sum g I) = sum (frag_extend f \<circ> g) I
[PROOF STEP]
by (induction I rule: finite_induct) (simp_all add: frag_extend_add)


[STATEMENT]
lemma (in group) pq_order_unique_subgrp:
  assumes finite:"finite (carrier G)"
  assumes orderG:"order G = q * p"
  assumes primep:"prime p" and primeq:"prime q" and pq:"p < q"
  shows "\<exists>!Q. Q \<in> (subgroups_of_size q)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>!Q. Q \<in> subgroups_of_size q
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<exists>!Q. Q \<in> subgroups_of_size q
[PROOF STEP]
from primep primeq pq
[PROOF STATE]
proof (chain)
picking this:
prime p
prime q
p < q
[PROOF STEP]
have nqdvdp:"\<not> (q dvd p)"
[PROOF STATE]
proof (prove)
using this:
prime p
prime q
p < q

goal (1 subgoal):
 1. \<not> q dvd p
[PROOF STEP]
by (metis less_not_refl3 prime_nat_iff)
[PROOF STATE]
proof (state)
this:
\<not> q dvd p

goal (1 subgoal):
 1. \<exists>!Q. Q \<in> subgroups_of_size q
[PROOF STEP]
define calM where "calM = {s. s \<subseteq> carrier G \<and> card s = q ^ 1}"
[PROOF STATE]
proof (state)
this:
calM = {s. s \<subseteq> carrier G \<and> card s = q ^ 1}

goal (1 subgoal):
 1. \<exists>!Q. Q \<in> subgroups_of_size q
[PROOF STEP]
define RelM where "RelM = {(N1, N2). N1 \<in> calM \<and> N2 \<in> calM \<and> (\<exists>g\<in>carrier G. N1 = N2 #> g)}"
[PROOF STATE]
proof (state)
this:
RelM = {(N1, N2). N1 \<in> calM \<and> N2 \<in> calM \<and> (\<exists>g\<in>carrier G. N1 = N2 #> g)}

goal (1 subgoal):
 1. \<exists>!Q. Q \<in> subgroups_of_size q
[PROOF STEP]
interpret syl: snd_sylow G q 1 p calM RelM
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. snd_sylow G q 1 p &&& (calM \<equiv> {s. s \<subseteq> carrier G \<and> card s = q ^ 1}) &&& RelM \<equiv> {(N1, N2). N1 \<in> calM \<and> N2 \<in> calM \<and> (\<exists>g\<in>carrier G. N1 = N2 #> g)}
[PROOF STEP]
unfolding snd_sylow_def sylow_def snd_sylow_axioms_def sylow_axioms_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (Group.group G \<and> prime q \<and> order G = q ^ 1 * p \<and> finite (carrier G)) \<and> \<not> q dvd p &&& (calM \<equiv> {s. s \<subseteq> carrier G \<and> card s = q ^ 1}) &&& RelM \<equiv> {(N1, N2). N1 \<in> calM \<and> N2 \<in> calM \<and> (\<exists>g\<in>carrier G. N1 = N2 #> g)}
[PROOF STEP]
using is_group primeq orderG finite nqdvdp calM_def RelM_def
[PROOF STATE]
proof (prove)
using this:
Group.group G
prime q
order G = q * p
finite (carrier G)
\<not> q dvd p
calM = {s. s \<subseteq> carrier G \<and> card s = q ^ 1}
RelM = {(N1, N2). N1 \<in> calM \<and> N2 \<in> calM \<and> (\<exists>g\<in>carrier G. N1 = N2 #> g)}

goal (1 subgoal):
 1. (Group.group G \<and> prime q \<and> order G = q ^ 1 * p \<and> finite (carrier G)) \<and> \<not> q dvd p &&& (calM \<equiv> {s. s \<subseteq> carrier G \<and> card s = q ^ 1}) &&& RelM \<equiv> {(N1, N2). N1 \<in> calM \<and> N2 \<in> calM \<and> (\<exists>g\<in>carrier G. N1 = N2 #> g)}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<exists>!Q. Q \<in> subgroups_of_size q
[PROOF STEP]
obtain Q where Q:"Q \<in> subgroups_of_size q"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>Q. Q \<in> subgroups_of_size q \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (metis (lifting, mono_tags) mem_Collect_eq power_one_right subgroups_of_size_def syl.sylow_thm)
[PROOF STATE]
proof (state)
this:
Q \<in> subgroups_of_size q

goal (1 subgoal):
 1. \<exists>!Q. Q \<in> subgroups_of_size q
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
Q \<in> subgroups_of_size q

goal (1 subgoal):
 1. \<exists>!Q. Q \<in> subgroups_of_size q
[PROOF STEP]
proof (rule ex1I)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>Qa. Qa \<in> subgroups_of_size q \<Longrightarrow> Qa = Q
[PROOF STEP]
fix P
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>Qa. Qa \<in> subgroups_of_size q \<Longrightarrow> Qa = Q
[PROOF STEP]
assume P:"P \<in> subgroups_of_size q"
[PROOF STATE]
proof (state)
this:
P \<in> subgroups_of_size q

goal (1 subgoal):
 1. \<And>Qa. Qa \<in> subgroups_of_size q \<Longrightarrow> Qa = Q
[PROOF STEP]
have "card (subgroups_of_size q) mod q = 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. card (subgroups_of_size q) mod q = 1
[PROOF STEP]
by (metis power_one_right syl.p_sylow_mod_p)
[PROOF STATE]
proof (state)
this:
card (subgroups_of_size q) mod q = 1

goal (1 subgoal):
 1. \<And>Qa. Qa \<in> subgroups_of_size q \<Longrightarrow> Qa = Q
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
card (subgroups_of_size q) mod q = 1

goal (1 subgoal):
 1. \<And>Qa. Qa \<in> subgroups_of_size q \<Longrightarrow> Qa = Q
[PROOF STEP]
have "card (subgroups_of_size q) dvd p"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. card (subgroups_of_size q) dvd p
[PROOF STEP]
by (metis power_one_right syl.num_sylow_dvd_remainder)
[PROOF STATE]
proof (state)
this:
card (subgroups_of_size q) dvd p

goal (1 subgoal):
 1. \<And>Qa. Qa \<in> subgroups_of_size q \<Longrightarrow> Qa = Q
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
card (subgroups_of_size q) dvd p
[PROOF STEP]
have "card (subgroups_of_size q) = p \<or> card (subgroups_of_size q) = 1"
[PROOF STATE]
proof (prove)
using this:
card (subgroups_of_size q) dvd p

goal (1 subgoal):
 1. card (subgroups_of_size q) = p \<or> card (subgroups_of_size q) = 1
[PROOF STEP]
using primep
[PROOF STATE]
proof (prove)
using this:
card (subgroups_of_size q) dvd p
prime p

goal (1 subgoal):
 1. card (subgroups_of_size q) = p \<or> card (subgroups_of_size q) = 1
[PROOF STEP]
by (auto simp add: prime_nat_iff)
[PROOF STATE]
proof (state)
this:
card (subgroups_of_size q) = p \<or> card (subgroups_of_size q) = 1

goal (1 subgoal):
 1. \<And>Qa. Qa \<in> subgroups_of_size q \<Longrightarrow> Qa = Q
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
card (subgroups_of_size q) mod q = 1
card (subgroups_of_size q) = p \<or> card (subgroups_of_size q) = 1
[PROOF STEP]
have "card (subgroups_of_size q) = 1"
[PROOF STATE]
proof (prove)
using this:
card (subgroups_of_size q) mod q = 1
card (subgroups_of_size q) = p \<or> card (subgroups_of_size q) = 1

goal (1 subgoal):
 1. card (subgroups_of_size q) = 1
[PROOF STEP]
using pq
[PROOF STATE]
proof (prove)
using this:
card (subgroups_of_size q) mod q = 1
card (subgroups_of_size q) = p \<or> card (subgroups_of_size q) = 1
p < q

goal (1 subgoal):
 1. card (subgroups_of_size q) = 1
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
card (subgroups_of_size q) = 1

goal (1 subgoal):
 1. \<And>Qa. Qa \<in> subgroups_of_size q \<Longrightarrow> Qa = Q
[PROOF STEP]
with Q P
[PROOF STATE]
proof (chain)
picking this:
Q \<in> subgroups_of_size q
P \<in> subgroups_of_size q
card (subgroups_of_size q) = 1
[PROOF STEP]
show "P = Q"
[PROOF STATE]
proof (prove)
using this:
Q \<in> subgroups_of_size q
P \<in> subgroups_of_size q
card (subgroups_of_size q) = 1

goal (1 subgoal):
 1. P = Q
[PROOF STEP]
by (auto simp:card_Suc_eq)
[PROOF STATE]
proof (state)
this:
P = Q

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<exists>!Q. Q \<in> subgroups_of_size q

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma bij_betw_plane_ball:"bij_betw (\<lambda>x. (\<i>-x)/(\<i>+x)) {x. Im x>0} (ball 0 1)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bij_betw (\<lambda>x. (\<i> - x) / (\<i> + x)) {x. 0 < Im x} (ball 0 1)
[PROOF STEP]
proof (rule bij_betw_imageI)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. inj_on (\<lambda>x. (\<i> - x) / (\<i> + x)) {x. 0 < Im x}
 2. (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x} = ball 0 1
[PROOF STEP]
have neq:"\<i> + x \<noteq>0" when "Im x>0" for x
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<i> + x \<noteq> 0
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
0 < Im x

goal (1 subgoal):
 1. \<i> + x \<noteq> 0
[PROOF STEP]
by (metis add_less_same_cancel2 add_uminus_conv_diff diff_0 diff_add_cancel
        imaginary_unit.simps(2) not_one_less_zero uminus_complex.sel(2))
[PROOF STATE]
proof (state)
this:
0 < Im ?x \<Longrightarrow> \<i> + ?x \<noteq> 0

goal (2 subgoals):
 1. inj_on (\<lambda>x. (\<i> - x) / (\<i> + x)) {x. 0 < Im x}
 2. (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x} = ball 0 1
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
0 < Im ?x \<Longrightarrow> \<i> + ?x \<noteq> 0
[PROOF STEP]
show "inj_on (\<lambda>x. (\<i> - x) / (\<i> + x)) {x. 0 < Im x}"
[PROOF STATE]
proof (prove)
using this:
0 < Im ?x \<Longrightarrow> \<i> + ?x \<noteq> 0

goal (1 subgoal):
 1. inj_on (\<lambda>x. (\<i> - x) / (\<i> + x)) {x. 0 < Im x}
[PROOF STEP]
unfolding inj_on_def
[PROOF STATE]
proof (prove)
using this:
0 < Im ?x \<Longrightarrow> \<i> + ?x \<noteq> 0

goal (1 subgoal):
 1. \<forall>x\<in>{x. 0 < Im x}. \<forall>y\<in>{x. 0 < Im x}. (\<i> - x) / (\<i> + x) = (\<i> - y) / (\<i> + y) \<longrightarrow> x = y
[PROOF STEP]
by (auto simp add:divide_simps algebra_simps)
[PROOF STATE]
proof (state)
this:
inj_on (\<lambda>x. (\<i> - x) / (\<i> + x)) {x. 0 < Im x}

goal (1 subgoal):
 1. (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x} = ball 0 1
[PROOF STEP]
have "cmod ((\<i> - x) / (\<i> + x)) < 1" when "0 < Im x " for x
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod ((\<i> - x) / (\<i> + x)) < 1
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. cmod ((\<i> - x) / (\<i> + x)) < 1
[PROOF STEP]
have "cmod (\<i> - x) < cmod (\<i> + x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. cmod (\<i> - x) < cmod (\<i> + x)
[PROOF STEP]
unfolding norm_lt inner_complex_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Re (\<i> - x) * Re (\<i> - x) + Im (\<i> - x) * Im (\<i> - x) < Re (\<i> + x) * Re (\<i> + x) + Im (\<i> + x) * Im (\<i> + x)
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
0 < Im x

goal (1 subgoal):
 1. Re (\<i> - x) * Re (\<i> - x) + Im (\<i> - x) * Im (\<i> - x) < Re (\<i> + x) * Re (\<i> + x) + Im (\<i> + x) * Im (\<i> + x)
[PROOF STEP]
by (auto simp add:algebra_simps)
[PROOF STATE]
proof (state)
this:
cmod (\<i> - x) < cmod (\<i> + x)

goal (1 subgoal):
 1. cmod ((\<i> - x) / (\<i> + x)) < 1
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
cmod (\<i> - x) < cmod (\<i> + x)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
cmod (\<i> - x) < cmod (\<i> + x)

goal (1 subgoal):
 1. cmod ((\<i> - x) / (\<i> + x)) < 1
[PROOF STEP]
unfolding norm_divide
[PROOF STATE]
proof (prove)
using this:
cmod (\<i> - x) < cmod (\<i> + x)

goal (1 subgoal):
 1. cmod (\<i> - x) / cmod (\<i> + x) < 1
[PROOF STEP]
using neq[OF that]
[PROOF STATE]
proof (prove)
using this:
cmod (\<i> - x) < cmod (\<i> + x)
\<i> + x \<noteq> 0

goal (1 subgoal):
 1. cmod (\<i> - x) / cmod (\<i> + x) < 1
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
cmod ((\<i> - x) / (\<i> + x)) < 1

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
0 < Im ?x \<Longrightarrow> cmod ((\<i> - ?x) / (\<i> + ?x)) < 1

goal (1 subgoal):
 1. (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x} = ball 0 1
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
0 < Im ?x \<Longrightarrow> cmod ((\<i> - ?x) / (\<i> + ?x)) < 1

goal (1 subgoal):
 1. (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x} = ball 0 1
[PROOF STEP]
have "x \<in> (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x}" when "cmod x < 1" for x
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x}
[PROOF STEP]
proof (rule rev_image_eqI[of "\<i>*(1-x)/(1+x)"])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<i> * (1 - x) / (1 + x) \<in> {x. 0 < Im x}
 2. x = (\<i> - \<i> * (1 - x) / (1 + x)) / (\<i> + \<i> * (1 - x) / (1 + x))
[PROOF STEP]
have "1 + x\<noteq>0" "\<i> * 2 + \<i> * (x * 2) \<noteq>0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 1 + x \<noteq> 0 &&& \<i> * 2 + \<i> * (x * 2) \<noteq> 0
[PROOF STEP]
subgoal
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 1 + x \<noteq> 0
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
cmod x < 1

goal (1 subgoal):
 1. 1 + x \<noteq> 0
[PROOF STEP]
by (metis complex_mod_triangle_sub norm_one norm_zero not_le pth_7(1))
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<i> * 2 + \<i> * (x * 2) \<noteq> 0
[PROOF STEP]
subgoal
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<i> * 2 + \<i> * (x * 2) \<noteq> 0
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
cmod x < 1

goal (1 subgoal):
 1. \<i> * 2 + \<i> * (x * 2) \<noteq> 0
[PROOF STEP]
by (metis \<open>1 + x \<noteq> 0\<close> complex_i_not_zero div_mult_self4 mult_2
            mult_zero_right nonzero_mult_div_cancel_left nonzero_mult_div_cancel_right
            one_add_one zero_neq_numeral)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
1 + x \<noteq> 0
\<i> * 2 + \<i> * (x * 2) \<noteq> 0

goal (2 subgoals):
 1. \<i> * (1 - x) / (1 + x) \<in> {x. 0 < Im x}
 2. x = (\<i> - \<i> * (1 - x) / (1 + x)) / (\<i> + \<i> * (1 - x) / (1 + x))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
1 + x \<noteq> 0
\<i> * 2 + \<i> * (x * 2) \<noteq> 0
[PROOF STEP]
show "x = (\<i> - \<i> * (1 - x) / (1 + x)) / (\<i> + \<i> * (1 - x) / (1 + x))"
[PROOF STATE]
proof (prove)
using this:
1 + x \<noteq> 0
\<i> * 2 + \<i> * (x * 2) \<noteq> 0

goal (1 subgoal):
 1. x = (\<i> - \<i> * (1 - x) / (1 + x)) / (\<i> + \<i> * (1 - x) / (1 + x))
[PROOF STEP]
by (auto simp add:field_simps)
[PROOF STATE]
proof (state)
this:
x = (\<i> - \<i> * (1 - x) / (1 + x)) / (\<i> + \<i> * (1 - x) / (1 + x))

goal (1 subgoal):
 1. \<i> * (1 - x) / (1 + x) \<in> {x. 0 < Im x}
[PROOF STEP]
show " \<i> * (1 - x) / (1 + x) \<in> {x. 0 < Im x}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<i> * (1 - x) / (1 + x) \<in> {x. 0 < Im x}
[PROOF STEP]
apply (auto simp:Im_complex_div_gt_0 algebra_simps)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Im x * Im x + Re x * Re x < 1
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
cmod x < 1

goal (1 subgoal):
 1. Im x * Im x + Re x * Re x < 1
[PROOF STEP]
unfolding cmod_def
[PROOF STATE]
proof (prove)
using this:
sqrt ((Re x)\<^sup>2 + (Im x)\<^sup>2) < 1

goal (1 subgoal):
 1. Im x * Im x + Re x * Re x < 1
[PROOF STEP]
by (auto simp:power2_eq_square)
[PROOF STATE]
proof (state)
this:
\<i> * (1 - x) / (1 + x) \<in> {x. 0 < Im x}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
cmod ?x < 1 \<Longrightarrow> ?x \<in> (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x}

goal (1 subgoal):
 1. (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x} = ball 0 1
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
0 < Im ?x \<Longrightarrow> cmod ((\<i> - ?x) / (\<i> + ?x)) < 1
cmod ?x < 1 \<Longrightarrow> ?x \<in> (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x}
[PROOF STEP]
show "(\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x} = ball 0 1"
[PROOF STATE]
proof (prove)
using this:
0 < Im ?x \<Longrightarrow> cmod ((\<i> - ?x) / (\<i> + ?x)) < 1
cmod ?x < 1 \<Longrightarrow> ?x \<in> (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x}

goal (1 subgoal):
 1. (\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x} = ball 0 1
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<lambda>x. (\<i> - x) / (\<i> + x)) ` {x. 0 < Im x} = ball 0 1

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma log_half [simp]: "log (n div 2) = log n - 1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. local.log (n div 2) = local.log n - 1
[PROOF STEP]
proof (cases "n < 2")
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. n < 2 \<Longrightarrow> local.log (n div 2) = local.log n - 1
 2. \<not> n < 2 \<Longrightarrow> local.log (n div 2) = local.log n - 1
[PROOF STEP]
case True
[PROOF STATE]
proof (state)
this:
n < 2

goal (2 subgoals):
 1. n < 2 \<Longrightarrow> local.log (n div 2) = local.log n - 1
 2. \<not> n < 2 \<Longrightarrow> local.log (n div 2) = local.log n - 1
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
n < 2
[PROOF STEP]
have "n = 0 \<or> n = 1"
[PROOF STATE]
proof (prove)
using this:
n < 2

goal (1 subgoal):
 1. n = 0 \<or> n = 1
[PROOF STEP]
by arith
[PROOF STATE]
proof (state)
this:
n = 0 \<or> n = 1

goal (2 subgoals):
 1. n < 2 \<Longrightarrow> local.log (n div 2) = local.log n - 1
 2. \<not> n < 2 \<Longrightarrow> local.log (n div 2) = local.log n - 1
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
n = 0 \<or> n = 1
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
n = 0 \<or> n = 1

goal (1 subgoal):
 1. local.log (n div 2) = local.log n - 1
[PROOF STEP]
by (auto simp del: One_nat_def)
[PROOF STATE]
proof (state)
this:
local.log (n div 2) = local.log n - 1

goal (1 subgoal):
 1. \<not> n < 2 \<Longrightarrow> local.log (n div 2) = local.log n - 1
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<not> n < 2 \<Longrightarrow> local.log (n div 2) = local.log n - 1
[PROOF STEP]
case False
[PROOF STATE]
proof (state)
this:
\<not> n < 2

goal (1 subgoal):
 1. \<not> n < 2 \<Longrightarrow> local.log (n div 2) = local.log n - 1
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<not> n < 2
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<not> n < 2

goal (1 subgoal):
 1. local.log (n div 2) = local.log n - 1
[PROOF STEP]
by (simp add: log_rec)
[PROOF STATE]
proof (state)
this:
local.log (n div 2) = local.log n - 1

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma mult_pCons_left [simp]: "pCons a p * q = smult a q + pCons 0 (p * q)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. pCons a p * q = smult a q + pCons (0::'a) (p * q)
[PROOF STEP]
by (cases "p = 0 \<and> a = 0") (auto simp add: times_poly_def)


[STATEMENT]
lemma map_bset_eq_bsingleton_iff[simp]:
  "map_bset f X = bsingleton x \<longleftrightarrow> (set_bset X \<noteq> {} \<and> (\<forall>y \<in> set_bset X. f y = x))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (map_bset f X = bsingleton x) = (set_bset X \<noteq> {} \<and> (\<forall>y\<in>set_bset X. f y = x))
[PROOF STEP]
unfolding bsingleton_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (map_bset f X = binsert x bempty) = (set_bset X \<noteq> {} \<and> (\<forall>y\<in>set_bset X. f y = x))
[PROOF STEP]
by transfer auto


[STATEMENT]
lemma llist_all2_True [simp]: "llist_all2 (\<lambda>_ _. True) xs ys \<longleftrightarrow> llength xs = llength ys"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. llist_all2 (\<lambda>_ _. True) xs ys = (llength xs = llength ys)
[PROOF STEP]
by(simp add: llist_all2_conv_all_lnth)


[STATEMENT]
lemma atMost_remove: "{..n} - {(n::'a::order)} = {..<n}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {..n} - {n} = {..<n}
[PROOF STEP]
apply (simp only: lessThan_insert[symmetric])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. insert n {..<n} - {n} = {..<n}
[PROOF STEP]
apply (rule Diff_insert_absorb)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. n \<notin> {..<n}
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma (in Ring) cartesianTr:"\<lbrakk>R module M; R module N; x \<in> M \<times>\<^sub>c N\<rbrakk> \<Longrightarrow>
       \<exists>m n. m\<in>carrier M \<and> n \<in> carrier N \<and> x = (m, n)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>R module M; R module N; x \<in> M \<times>\<^sub>c N\<rbrakk> \<Longrightarrow> \<exists>m n. m \<in> carrier M \<and> n \<in> carrier N \<and> x = (m, n)
[PROOF STEP]
by (cases x) (simp add: prod_carr_def)


[STATEMENT]
lemma in_arcs_app_iso_eq':
  assumes "digraph_isomorphism hom" and "u \<in> verts (app_iso hom G)"
  shows "in_arcs (app_iso hom G) u = iso_arcs hom ` in_arcs G (iso_verts (inv_iso hom) u)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. in_arcs (app_iso hom G) u = iso_arcs hom ` in_arcs G (iso_verts (inv_iso hom) u)
[PROOF STEP]
using assms in_arcs_app_iso_eq[of hom "iso_verts (inv_iso hom) u"]
[PROOF STATE]
proof (prove)
using this:
digraph_isomorphism hom
u \<in> verts (app_iso hom G)
\<lbrakk>digraph_isomorphism hom; iso_verts (inv_iso hom) u \<in> verts G\<rbrakk> \<Longrightarrow> in_arcs (app_iso hom G) (iso_verts hom (iso_verts (inv_iso hom) u)) = iso_arcs hom ` in_arcs G (iso_verts (inv_iso hom) u)

goal (1 subgoal):
 1. in_arcs (app_iso hom G) u = iso_arcs hom ` in_arcs G (iso_verts (inv_iso hom) u)
[PROOF STEP]
by auto


[STATEMENT]
lemma tests_d_range:
  "tests = range d"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. tests = range d
[PROOF STEP]
using tests_def image_def d_surjective_iff
[PROOF STATE]
proof (prove)
using this:
tests = {x. test x}
?f ` ?A = {y. \<exists>x\<in>?A. y = ?f x}
test ?x = (\<exists>y. d y = ?x)

goal (1 subgoal):
 1. tests = range d
[PROOF STEP]
by auto