[STATEMENT]
theorem split_inside_simple_closed_curve:
  fixes c :: "real \<Rightarrow> complex"
  assumes "simple_path c1" and c1: "pathstart c1 = a" "pathfinish c1 = b"
      and "simple_path c2" and c2: "pathstart c2 = a" "pathfinish c2 = b"
      and "simple_path c"  and c: "pathstart c = a" "pathfinish c = b"
      and "a \<noteq> b"
      and c1c2: "path_image c1 \<inter> path_image c2 = {a,b}"
      and c1c: "path_image c1 \<inter> path_image c = {a,b}"
      and c2c: "path_image c2 \<inter> path_image c = {a,b}"
      and ne_12: "path_image c \<inter> inside(path_image c1 \<union> path_image c2) \<noteq> {}"
  obtains "inside(path_image c1 \<union> path_image c) \<inter> inside(path_image c2 \<union> path_image c) = {}"
          "inside(path_image c1 \<union> path_image c) \<union> inside(path_image c2 \<union> path_image c) \<union>
           (path_image c - {a,b}) = inside(path_image c1 \<union> path_image c2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
let ?\<Theta> = "path_image c"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
let ?\<Theta>1 = "path_image c1"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
let ?\<Theta>2 = "path_image c2"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have sp: "simple_path (c1 +++ reversepath c2)" "simple_path (c1 +++ reversepath c)" "simple_path (c2 +++ reversepath c)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. simple_path (c1 +++ reversepath c2) &&& simple_path (c1 +++ reversepath c) &&& simple_path (c2 +++ reversepath c)
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
simple_path c1
pathstart c1 = a
pathfinish c1 = b
simple_path c2
pathstart c2 = a
pathfinish c2 = b
simple_path c
pathstart c = a
pathfinish c = b
a \<noteq> b
path_image c1 \<inter> path_image c2 = {a, b}
path_image c1 \<inter> path_image c = {a, b}
path_image c2 \<inter> path_image c = {a, b}
path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}

goal (1 subgoal):
 1. simple_path (c1 +++ reversepath c2) &&& simple_path (c1 +++ reversepath c) &&& simple_path (c2 +++ reversepath c)
[PROOF STEP]
by (auto simp: simple_path_join_loop_eq arc_simple_path simple_path_reversepath)
[PROOF STATE]
proof (state)
this:
simple_path (c1 +++ reversepath c2)
simple_path (c1 +++ reversepath c)
simple_path (c2 +++ reversepath c)

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
simple_path (c1 +++ reversepath c2)
simple_path (c1 +++ reversepath c)
simple_path (c2 +++ reversepath c)
[PROOF STEP]
have op_in12: "open (inside (?\<Theta>1 \<union> ?\<Theta>2))"
     and op_out12: "open (outside (?\<Theta>1 \<union> ?\<Theta>2))"
     and op_in1c: "open (inside (?\<Theta>1 \<union> ?\<Theta>))"
     and op_in2c: "open (inside (?\<Theta>2 \<union> ?\<Theta>))"
     and op_out1c: "open (outside (?\<Theta>1 \<union> ?\<Theta>))"
     and op_out2c: "open (outside (?\<Theta>2 \<union> ?\<Theta>))"
     and co_in1c: "connected (inside (?\<Theta>1 \<union> ?\<Theta>))"
     and co_in2c: "connected (inside (?\<Theta>2 \<union> ?\<Theta>))"
     and co_out12c: "connected (outside (?\<Theta>1 \<union> ?\<Theta>2))"
     and co_out1c: "connected (outside (?\<Theta>1 \<union> ?\<Theta>))"
     and co_out2c: "connected (outside (?\<Theta>2 \<union> ?\<Theta>))"
     and pa_c: "?\<Theta> - {pathstart c, pathfinish c} \<subseteq> - ?\<Theta>1"
               "?\<Theta> - {pathstart c, pathfinish c} \<subseteq> - ?\<Theta>2"
     and pa_c1: "?\<Theta>1 - {pathstart c1, pathfinish c1} \<subseteq> - ?\<Theta>2"
                "?\<Theta>1 - {pathstart c1, pathfinish c1} \<subseteq> - ?\<Theta>"
     and pa_c2: "?\<Theta>2 - {pathstart c2, pathfinish c2} \<subseteq> - ?\<Theta>1"
                "?\<Theta>2 - {pathstart c2, pathfinish c2} \<subseteq> - ?\<Theta>"
     and co_c: "connected(?\<Theta> - {pathstart c,pathfinish c})"
     and co_c1: "connected(?\<Theta>1 - {pathstart c1,pathfinish c1})"
     and co_c2: "connected(?\<Theta>2 - {pathstart c2,pathfinish c2})"
     and fr_in: "frontier(inside(?\<Theta>1 \<union> ?\<Theta>2)) = ?\<Theta>1 \<union> ?\<Theta>2"
              "frontier(inside(?\<Theta>2 \<union> ?\<Theta>)) = ?\<Theta>2 \<union> ?\<Theta>"
              "frontier(inside(?\<Theta>1 \<union> ?\<Theta>)) = ?\<Theta>1 \<union> ?\<Theta>"
     and fr_out: "frontier(outside(?\<Theta>1 \<union> ?\<Theta>2)) = ?\<Theta>1 \<union> ?\<Theta>2"
              "frontier(outside(?\<Theta>2 \<union> ?\<Theta>)) = ?\<Theta>2 \<union> ?\<Theta>"
              "frontier(outside(?\<Theta>1 \<union> ?\<Theta>)) = ?\<Theta>1 \<union> ?\<Theta>"
[PROOF STATE]
proof (prove)
using this:
simple_path (c1 +++ reversepath c2)
simple_path (c1 +++ reversepath c)
simple_path (c2 +++ reversepath c)

goal (1 subgoal):
 1. (((open (inside (path_image c1 \<union> path_image c2)) &&& open (outside (path_image c1 \<union> path_image c2))) &&& open (inside (path_image c1 \<union> path_image c)) &&& open (inside (path_image c2 \<union> path_image c))) &&& (open (outside (path_image c1 \<union> path_image c)) &&& open (outside (path_image c2 \<union> path_image c))) &&& connected (inside (path_image c1 \<union> path_image c)) &&& connected (inside (path_image c2 \<union> path_image c)) &&& connected (outside (path_image c1 \<union> path_image c2))) &&& ((connected (outside (path_image c1 \<union> path_image c)) &&& connected (outside (path_image c2 \<union> path_image c))) &&& (path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c1 &&& path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c2) &&& (path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c2 &&& path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c) &&& path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c1 &&& path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c) &&& (connected (path_image c - {pathstart c, pathfinish c}) &&& connected (path_image c1 - {pathstart c1, pathfinish c1})) &&& connected (path_image c2 - {pathstart c2, pathfinish c2}) &&& (frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 &&& frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c &&& frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c) &&& frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 &&& frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c &&& frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c
[PROOF STEP]
using Jordan_inside_outside [of "c1 +++ reversepath c2"]
[PROOF STATE]
proof (prove)
using this:
simple_path (c1 +++ reversepath c2)
simple_path (c1 +++ reversepath c)
simple_path (c2 +++ reversepath c)
\<lbrakk>simple_path (c1 +++ reversepath c2); pathfinish (c1 +++ reversepath c2) = pathstart (c1 +++ reversepath c2)\<rbrakk> \<Longrightarrow> inside (path_image (c1 +++ reversepath c2)) \<noteq> {} \<and> open (inside (path_image (c1 +++ reversepath c2))) \<and> connected (inside (path_image (c1 +++ reversepath c2))) \<and> outside (path_image (c1 +++ reversepath c2)) \<noteq> {} \<and> open (outside (path_image (c1 +++ reversepath c2))) \<and> connected (outside (path_image (c1 +++ reversepath c2))) \<and> bounded (inside (path_image (c1 +++ reversepath c2))) \<and> \<not> bounded (outside (path_image (c1 +++ reversepath c2))) \<and> inside (path_image (c1 +++ reversepath c2)) \<inter> outside (path_image (c1 +++ reversepath c2)) = {} \<and> inside (path_image (c1 +++ reversepath c2)) \<union> outside (path_image (c1 +++ reversepath c2)) = - path_image (c1 +++ reversepath c2) \<and> frontier (inside (path_image (c1 +++ reversepath c2))) = path_image (c1 +++ reversepath c2) \<and> frontier (outside (path_image (c1 +++ reversepath c2))) = path_image (c1 +++ reversepath c2)

goal (1 subgoal):
 1. (((open (inside (path_image c1 \<union> path_image c2)) &&& open (outside (path_image c1 \<union> path_image c2))) &&& open (inside (path_image c1 \<union> path_image c)) &&& open (inside (path_image c2 \<union> path_image c))) &&& (open (outside (path_image c1 \<union> path_image c)) &&& open (outside (path_image c2 \<union> path_image c))) &&& connected (inside (path_image c1 \<union> path_image c)) &&& connected (inside (path_image c2 \<union> path_image c)) &&& connected (outside (path_image c1 \<union> path_image c2))) &&& ((connected (outside (path_image c1 \<union> path_image c)) &&& connected (outside (path_image c2 \<union> path_image c))) &&& (path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c1 &&& path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c2) &&& (path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c2 &&& path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c) &&& path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c1 &&& path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c) &&& (connected (path_image c - {pathstart c, pathfinish c}) &&& connected (path_image c1 - {pathstart c1, pathfinish c1})) &&& connected (path_image c2 - {pathstart c2, pathfinish c2}) &&& (frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 &&& frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c &&& frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c) &&& frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 &&& frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c &&& frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c
[PROOF STEP]
using Jordan_inside_outside [of "c1 +++ reversepath c"]
[PROOF STATE]
proof (prove)
using this:
simple_path (c1 +++ reversepath c2)
simple_path (c1 +++ reversepath c)
simple_path (c2 +++ reversepath c)
\<lbrakk>simple_path (c1 +++ reversepath c2); pathfinish (c1 +++ reversepath c2) = pathstart (c1 +++ reversepath c2)\<rbrakk> \<Longrightarrow> inside (path_image (c1 +++ reversepath c2)) \<noteq> {} \<and> open (inside (path_image (c1 +++ reversepath c2))) \<and> connected (inside (path_image (c1 +++ reversepath c2))) \<and> outside (path_image (c1 +++ reversepath c2)) \<noteq> {} \<and> open (outside (path_image (c1 +++ reversepath c2))) \<and> connected (outside (path_image (c1 +++ reversepath c2))) \<and> bounded (inside (path_image (c1 +++ reversepath c2))) \<and> \<not> bounded (outside (path_image (c1 +++ reversepath c2))) \<and> inside (path_image (c1 +++ reversepath c2)) \<inter> outside (path_image (c1 +++ reversepath c2)) = {} \<and> inside (path_image (c1 +++ reversepath c2)) \<union> outside (path_image (c1 +++ reversepath c2)) = - path_image (c1 +++ reversepath c2) \<and> frontier (inside (path_image (c1 +++ reversepath c2))) = path_image (c1 +++ reversepath c2) \<and> frontier (outside (path_image (c1 +++ reversepath c2))) = path_image (c1 +++ reversepath c2)
\<lbrakk>simple_path (c1 +++ reversepath c); pathfinish (c1 +++ reversepath c) = pathstart (c1 +++ reversepath c)\<rbrakk> \<Longrightarrow> inside (path_image (c1 +++ reversepath c)) \<noteq> {} \<and> open (inside (path_image (c1 +++ reversepath c))) \<and> connected (inside (path_image (c1 +++ reversepath c))) \<and> outside (path_image (c1 +++ reversepath c)) \<noteq> {} \<and> open (outside (path_image (c1 +++ reversepath c))) \<and> connected (outside (path_image (c1 +++ reversepath c))) \<and> bounded (inside (path_image (c1 +++ reversepath c))) \<and> \<not> bounded (outside (path_image (c1 +++ reversepath c))) \<and> inside (path_image (c1 +++ reversepath c)) \<inter> outside (path_image (c1 +++ reversepath c)) = {} \<and> inside (path_image (c1 +++ reversepath c)) \<union> outside (path_image (c1 +++ reversepath c)) = - path_image (c1 +++ reversepath c) \<and> frontier (inside (path_image (c1 +++ reversepath c))) = path_image (c1 +++ reversepath c) \<and> frontier (outside (path_image (c1 +++ reversepath c))) = path_image (c1 +++ reversepath c)

goal (1 subgoal):
 1. (((open (inside (path_image c1 \<union> path_image c2)) &&& open (outside (path_image c1 \<union> path_image c2))) &&& open (inside (path_image c1 \<union> path_image c)) &&& open (inside (path_image c2 \<union> path_image c))) &&& (open (outside (path_image c1 \<union> path_image c)) &&& open (outside (path_image c2 \<union> path_image c))) &&& connected (inside (path_image c1 \<union> path_image c)) &&& connected (inside (path_image c2 \<union> path_image c)) &&& connected (outside (path_image c1 \<union> path_image c2))) &&& ((connected (outside (path_image c1 \<union> path_image c)) &&& connected (outside (path_image c2 \<union> path_image c))) &&& (path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c1 &&& path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c2) &&& (path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c2 &&& path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c) &&& path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c1 &&& path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c) &&& (connected (path_image c - {pathstart c, pathfinish c}) &&& connected (path_image c1 - {pathstart c1, pathfinish c1})) &&& connected (path_image c2 - {pathstart c2, pathfinish c2}) &&& (frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 &&& frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c &&& frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c) &&& frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 &&& frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c &&& frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c
[PROOF STEP]
using Jordan_inside_outside [of "c2 +++ reversepath c"] assms
[PROOF STATE]
proof (prove)
using this:
simple_path (c1 +++ reversepath c2)
simple_path (c1 +++ reversepath c)
simple_path (c2 +++ reversepath c)
\<lbrakk>simple_path (c1 +++ reversepath c2); pathfinish (c1 +++ reversepath c2) = pathstart (c1 +++ reversepath c2)\<rbrakk> \<Longrightarrow> inside (path_image (c1 +++ reversepath c2)) \<noteq> {} \<and> open (inside (path_image (c1 +++ reversepath c2))) \<and> connected (inside (path_image (c1 +++ reversepath c2))) \<and> outside (path_image (c1 +++ reversepath c2)) \<noteq> {} \<and> open (outside (path_image (c1 +++ reversepath c2))) \<and> connected (outside (path_image (c1 +++ reversepath c2))) \<and> bounded (inside (path_image (c1 +++ reversepath c2))) \<and> \<not> bounded (outside (path_image (c1 +++ reversepath c2))) \<and> inside (path_image (c1 +++ reversepath c2)) \<inter> outside (path_image (c1 +++ reversepath c2)) = {} \<and> inside (path_image (c1 +++ reversepath c2)) \<union> outside (path_image (c1 +++ reversepath c2)) = - path_image (c1 +++ reversepath c2) \<and> frontier (inside (path_image (c1 +++ reversepath c2))) = path_image (c1 +++ reversepath c2) \<and> frontier (outside (path_image (c1 +++ reversepath c2))) = path_image (c1 +++ reversepath c2)
\<lbrakk>simple_path (c1 +++ reversepath c); pathfinish (c1 +++ reversepath c) = pathstart (c1 +++ reversepath c)\<rbrakk> \<Longrightarrow> inside (path_image (c1 +++ reversepath c)) \<noteq> {} \<and> open (inside (path_image (c1 +++ reversepath c))) \<and> connected (inside (path_image (c1 +++ reversepath c))) \<and> outside (path_image (c1 +++ reversepath c)) \<noteq> {} \<and> open (outside (path_image (c1 +++ reversepath c))) \<and> connected (outside (path_image (c1 +++ reversepath c))) \<and> bounded (inside (path_image (c1 +++ reversepath c))) \<and> \<not> bounded (outside (path_image (c1 +++ reversepath c))) \<and> inside (path_image (c1 +++ reversepath c)) \<inter> outside (path_image (c1 +++ reversepath c)) = {} \<and> inside (path_image (c1 +++ reversepath c)) \<union> outside (path_image (c1 +++ reversepath c)) = - path_image (c1 +++ reversepath c) \<and> frontier (inside (path_image (c1 +++ reversepath c))) = path_image (c1 +++ reversepath c) \<and> frontier (outside (path_image (c1 +++ reversepath c))) = path_image (c1 +++ reversepath c)
\<lbrakk>simple_path (c2 +++ reversepath c); pathfinish (c2 +++ reversepath c) = pathstart (c2 +++ reversepath c)\<rbrakk> \<Longrightarrow> inside (path_image (c2 +++ reversepath c)) \<noteq> {} \<and> open (inside (path_image (c2 +++ reversepath c))) \<and> connected (inside (path_image (c2 +++ reversepath c))) \<and> outside (path_image (c2 +++ reversepath c)) \<noteq> {} \<and> open (outside (path_image (c2 +++ reversepath c))) \<and> connected (outside (path_image (c2 +++ reversepath c))) \<and> bounded (inside (path_image (c2 +++ reversepath c))) \<and> \<not> bounded (outside (path_image (c2 +++ reversepath c))) \<and> inside (path_image (c2 +++ reversepath c)) \<inter> outside (path_image (c2 +++ reversepath c)) = {} \<and> inside (path_image (c2 +++ reversepath c)) \<union> outside (path_image (c2 +++ reversepath c)) = - path_image (c2 +++ reversepath c) \<and> frontier (inside (path_image (c2 +++ reversepath c))) = path_image (c2 +++ reversepath c) \<and> frontier (outside (path_image (c2 +++ reversepath c))) = path_image (c2 +++ reversepath c)
simple_path c1
pathstart c1 = a
pathfinish c1 = b
simple_path c2
pathstart c2 = a
pathfinish c2 = b
simple_path c
pathstart c = a
pathfinish c = b
a \<noteq> b
path_image c1 \<inter> path_image c2 = {a, b}
path_image c1 \<inter> path_image c = {a, b}
path_image c2 \<inter> path_image c = {a, b}
path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}

goal (1 subgoal):
 1. (((open (inside (path_image c1 \<union> path_image c2)) &&& open (outside (path_image c1 \<union> path_image c2))) &&& open (inside (path_image c1 \<union> path_image c)) &&& open (inside (path_image c2 \<union> path_image c))) &&& (open (outside (path_image c1 \<union> path_image c)) &&& open (outside (path_image c2 \<union> path_image c))) &&& connected (inside (path_image c1 \<union> path_image c)) &&& connected (inside (path_image c2 \<union> path_image c)) &&& connected (outside (path_image c1 \<union> path_image c2))) &&& ((connected (outside (path_image c1 \<union> path_image c)) &&& connected (outside (path_image c2 \<union> path_image c))) &&& (path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c1 &&& path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c2) &&& (path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c2 &&& path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c) &&& path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c1 &&& path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c) &&& (connected (path_image c - {pathstart c, pathfinish c}) &&& connected (path_image c1 - {pathstart c1, pathfinish c1})) &&& connected (path_image c2 - {pathstart c2, pathfinish c2}) &&& (frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 &&& frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c &&& frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c) &&& frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 &&& frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c &&& frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c
[PROOF STEP]
apply (simp_all add: path_image_join closed_Un closed_simple_path_image open_inside open_outside)
[PROOF STATE]
proof (prove)
goal (9 subgoals):
 1. \<lbrakk>simple_path (c1 +++ reversepath c2); simple_path (c1 +++ reversepath c); simple_path (c2 +++ reversepath c); inside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c2)) \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c2)) \<and> bounded (inside (path_image c1 \<union> path_image c2)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c2)) \<and> frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 \<and> frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2; inside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c)) \<and> bounded (inside (path_image c1 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c)) \<and> frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c \<and> frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c; inside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c2 \<union> path_image c)) \<and> bounded (inside (path_image c2 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c2 \<union> path_image c)) \<and> frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c \<and> frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c; simple_path c1; pathstart c1 = a; pathfinish c1 = b; simple_path c2; pathstart c2 = a; pathfinish c2 = b; simple_path c; pathstart c = a; pathfinish c = b; a \<noteq> b; path_image c1 \<inter> path_image c2 = {a, b}; path_image c1 \<inter> path_image c = {a, b}; path_image c2 \<inter> path_image c = {a, b}; path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}\<rbrakk> \<Longrightarrow> path_image c - {a, b} \<subseteq> - path_image c1
 2. \<lbrakk>simple_path (c1 +++ reversepath c2); simple_path (c1 +++ reversepath c); simple_path (c2 +++ reversepath c); inside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c2)) \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c2)) \<and> bounded (inside (path_image c1 \<union> path_image c2)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c2)) \<and> frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 \<and> frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2; inside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c)) \<and> bounded (inside (path_image c1 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c)) \<and> frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c \<and> frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c; inside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c2 \<union> path_image c)) \<and> bounded (inside (path_image c2 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c2 \<union> path_image c)) \<and> frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c \<and> frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c; simple_path c1; pathstart c1 = a; pathfinish c1 = b; simple_path c2; pathstart c2 = a; pathfinish c2 = b; simple_path c; pathstart c = a; pathfinish c = b; a \<noteq> b; path_image c1 \<inter> path_image c2 = {a, b}; path_image c1 \<inter> path_image c = {a, b}; path_image c2 \<inter> path_image c = {a, b}; path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}\<rbrakk> \<Longrightarrow> path_image c - {a, b} \<subseteq> - path_image c2
 3. \<lbrakk>simple_path (c1 +++ reversepath c2); simple_path (c1 +++ reversepath c); simple_path (c2 +++ reversepath c); inside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c2)) \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c2)) \<and> bounded (inside (path_image c1 \<union> path_image c2)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c2)) \<and> frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 \<and> frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2; inside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c)) \<and> bounded (inside (path_image c1 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c)) \<and> frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c \<and> frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c; inside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c2 \<union> path_image c)) \<and> bounded (inside (path_image c2 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c2 \<union> path_image c)) \<and> frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c \<and> frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c; simple_path c1; pathstart c1 = a; pathfinish c1 = b; simple_path c2; pathstart c2 = a; pathfinish c2 = b; simple_path c; pathstart c = a; pathfinish c = b; a \<noteq> b; path_image c1 \<inter> path_image c2 = {a, b}; path_image c1 \<inter> path_image c = {a, b}; path_image c2 \<inter> path_image c = {a, b}; path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}\<rbrakk> \<Longrightarrow> path_image c1 - {a, b} \<subseteq> - path_image c2
 4. \<lbrakk>simple_path (c1 +++ reversepath c2); simple_path (c1 +++ reversepath c); simple_path (c2 +++ reversepath c); inside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c2)) \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c2)) \<and> bounded (inside (path_image c1 \<union> path_image c2)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c2)) \<and> frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 \<and> frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2; inside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c)) \<and> bounded (inside (path_image c1 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c)) \<and> frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c \<and> frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c; inside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c2 \<union> path_image c)) \<and> bounded (inside (path_image c2 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c2 \<union> path_image c)) \<and> frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c \<and> frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c; simple_path c1; pathstart c1 = a; pathfinish c1 = b; simple_path c2; pathstart c2 = a; pathfinish c2 = b; simple_path c; pathstart c = a; pathfinish c = b; a \<noteq> b; path_image c1 \<inter> path_image c2 = {a, b}; path_image c1 \<inter> path_image c = {a, b}; path_image c2 \<inter> path_image c = {a, b}; path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}\<rbrakk> \<Longrightarrow> path_image c1 - {a, b} \<subseteq> - path_image c
 5. \<lbrakk>simple_path (c1 +++ reversepath c2); simple_path (c1 +++ reversepath c); simple_path (c2 +++ reversepath c); inside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c2)) \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c2)) \<and> bounded (inside (path_image c1 \<union> path_image c2)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c2)) \<and> frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 \<and> frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2; inside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c)) \<and> bounded (inside (path_image c1 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c)) \<and> frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c \<and> frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c; inside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c2 \<union> path_image c)) \<and> bounded (inside (path_image c2 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c2 \<union> path_image c)) \<and> frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c \<and> frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c; simple_path c1; pathstart c1 = a; pathfinish c1 = b; simple_path c2; pathstart c2 = a; pathfinish c2 = b; simple_path c; pathstart c = a; pathfinish c = b; a \<noteq> b; path_image c1 \<inter> path_image c2 = {a, b}; path_image c1 \<inter> path_image c = {a, b}; path_image c2 \<inter> path_image c = {a, b}; path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}\<rbrakk> \<Longrightarrow> path_image c2 - {a, b} \<subseteq> - path_image c1
 6. \<lbrakk>simple_path (c1 +++ reversepath c2); simple_path (c1 +++ reversepath c); simple_path (c2 +++ reversepath c); inside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c2)) \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c2)) \<and> bounded (inside (path_image c1 \<union> path_image c2)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c2)) \<and> frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 \<and> frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2; inside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c)) \<and> bounded (inside (path_image c1 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c)) \<and> frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c \<and> frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c; inside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c2 \<union> path_image c)) \<and> bounded (inside (path_image c2 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c2 \<union> path_image c)) \<and> frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c \<and> frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c; simple_path c1; pathstart c1 = a; pathfinish c1 = b; simple_path c2; pathstart c2 = a; pathfinish c2 = b; simple_path c; pathstart c = a; pathfinish c = b; a \<noteq> b; path_image c1 \<inter> path_image c2 = {a, b}; path_image c1 \<inter> path_image c = {a, b}; path_image c2 \<inter> path_image c = {a, b}; path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}\<rbrakk> \<Longrightarrow> path_image c2 - {a, b} \<subseteq> - path_image c
 7. \<lbrakk>simple_path (c1 +++ reversepath c2); simple_path (c1 +++ reversepath c); simple_path (c2 +++ reversepath c); inside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c2)) \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c2)) \<and> bounded (inside (path_image c1 \<union> path_image c2)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c2)) \<and> frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 \<and> frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2; inside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c)) \<and> bounded (inside (path_image c1 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c)) \<and> frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c \<and> frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c; inside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c2 \<union> path_image c)) \<and> bounded (inside (path_image c2 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c2 \<union> path_image c)) \<and> frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c \<and> frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c; simple_path c1; pathstart c1 = a; pathfinish c1 = b; simple_path c2; pathstart c2 = a; pathfinish c2 = b; simple_path c; pathstart c = a; pathfinish c = b; a \<noteq> b; path_image c1 \<inter> path_image c2 = {a, b}; path_image c1 \<inter> path_image c = {a, b}; path_image c2 \<inter> path_image c = {a, b}; path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}\<rbrakk> \<Longrightarrow> connected (path_image c - {a, b})
 8. \<lbrakk>simple_path (c1 +++ reversepath c2); simple_path (c1 +++ reversepath c); simple_path (c2 +++ reversepath c); inside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c2)) \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c2)) \<and> bounded (inside (path_image c1 \<union> path_image c2)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c2)) \<and> frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 \<and> frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2; inside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c)) \<and> bounded (inside (path_image c1 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c)) \<and> frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c \<and> frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c; inside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c2 \<union> path_image c)) \<and> bounded (inside (path_image c2 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c2 \<union> path_image c)) \<and> frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c \<and> frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c; simple_path c1; pathstart c1 = a; pathfinish c1 = b; simple_path c2; pathstart c2 = a; pathfinish c2 = b; simple_path c; pathstart c = a; pathfinish c = b; a \<noteq> b; path_image c1 \<inter> path_image c2 = {a, b}; path_image c1 \<inter> path_image c = {a, b}; path_image c2 \<inter> path_image c = {a, b}; path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}\<rbrakk> \<Longrightarrow> connected (path_image c1 - {a, b})
 9. \<lbrakk>simple_path (c1 +++ reversepath c2); simple_path (c1 +++ reversepath c); simple_path (c2 +++ reversepath c); inside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c2)) \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c2)) \<and> bounded (inside (path_image c1 \<union> path_image c2)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c2)) \<and> frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2 \<and> frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2; inside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c1 \<union> path_image c)) \<and> bounded (inside (path_image c1 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c1 \<union> path_image c)) \<and> frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c \<and> frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c; inside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (inside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<noteq> {} \<and> connected (outside (path_image c2 \<union> path_image c)) \<and> bounded (inside (path_image c2 \<union> path_image c)) \<and> \<not> bounded (outside (path_image c2 \<union> path_image c)) \<and> frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c \<and> frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c; simple_path c1; pathstart c1 = a; pathfinish c1 = b; simple_path c2; pathstart c2 = a; pathfinish c2 = b; simple_path c; pathstart c = a; pathfinish c = b; a \<noteq> b; path_image c1 \<inter> path_image c2 = {a, b}; path_image c1 \<inter> path_image c = {a, b}; path_image c2 \<inter> path_image c = {a, b}; path_image c \<inter> inside (path_image c1 \<union> path_image c2) \<noteq> {}\<rbrakk> \<Longrightarrow> connected (path_image c2 - {a, b})
[PROOF STEP]
apply (blast elim: | metis connected_simple_path_endless)+
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
open (inside (path_image c1 \<union> path_image c2))
open (outside (path_image c1 \<union> path_image c2))
open (inside (path_image c1 \<union> path_image c))
open (inside (path_image c2 \<union> path_image c))
open (outside (path_image c1 \<union> path_image c))
open (outside (path_image c2 \<union> path_image c))
connected (inside (path_image c1 \<union> path_image c))
connected (inside (path_image c2 \<union> path_image c))
connected (outside (path_image c1 \<union> path_image c2))
connected (outside (path_image c1 \<union> path_image c))
connected (outside (path_image c2 \<union> path_image c))
path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c1
path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c2
path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c2
path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c
path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c1
path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c
connected (path_image c - {pathstart c, pathfinish c})
connected (path_image c1 - {pathstart c1, pathfinish c1})
connected (path_image c2 - {pathstart c2, pathfinish c2})
frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2
frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c
frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c
frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2
frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c
frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have inout_12: "inside (?\<Theta>1 \<union> ?\<Theta>2) \<inter> (?\<Theta> - {pathstart c, pathfinish c}) \<noteq> {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) \<noteq> {}
[PROOF STEP]
by (metis (no_types, lifting) c c1c ne_12 Diff_Int_distrib Diff_empty Int_empty_right Int_left_commute inf_sup_absorb inf_sup_aci(1) inside_no_overlap)
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) \<noteq> {}

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have pi_disjoint:  "?\<Theta> \<inter> outside(?\<Theta>1 \<union> ?\<Theta>2) = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. path_image c \<inter> outside (path_image c1 \<union> path_image c2) = {}
[PROOF STEP]
proof (rule ccontr)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. path_image c \<inter> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
assume "?\<Theta> \<inter> outside (?\<Theta>1 \<union> ?\<Theta>2) \<noteq> {}"
[PROOF STATE]
proof (state)
this:
path_image c \<inter> outside (path_image c1 \<union> path_image c2) \<noteq> {}

goal (1 subgoal):
 1. path_image c \<inter> outside (path_image c1 \<union> path_image c2) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
path_image c \<inter> outside (path_image c1 \<union> path_image c2) \<noteq> {}
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
path_image c \<inter> outside (path_image c1 \<union> path_image c2) \<noteq> {}

goal (1 subgoal):
 1. False
[PROOF STEP]
using connectedD [OF co_c, of "inside(?\<Theta>1 \<union> ?\<Theta>2)" "outside(?\<Theta>1 \<union> ?\<Theta>2)"]
[PROOF STATE]
proof (prove)
using this:
path_image c \<inter> outside (path_image c1 \<union> path_image c2) \<noteq> {}
\<lbrakk>open (inside (path_image c1 \<union> path_image c2)); open (outside (path_image c1 \<union> path_image c2)); inside (path_image c1 \<union> path_image c2) \<inter> outside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) = {}; path_image c - {pathstart c, pathfinish c} \<subseteq> inside (path_image c1 \<union> path_image c2) \<union> outside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> inside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) = {} \<or> outside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) = {}

goal (1 subgoal):
 1. False
[PROOF STEP]
using c c1c2 pa_c op_in12 op_out12 inout_12
[PROOF STATE]
proof (prove)
using this:
path_image c \<inter> outside (path_image c1 \<union> path_image c2) \<noteq> {}
\<lbrakk>open (inside (path_image c1 \<union> path_image c2)); open (outside (path_image c1 \<union> path_image c2)); inside (path_image c1 \<union> path_image c2) \<inter> outside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) = {}; path_image c - {pathstart c, pathfinish c} \<subseteq> inside (path_image c1 \<union> path_image c2) \<union> outside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> inside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) = {} \<or> outside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) = {}
pathstart c = a
pathfinish c = b
path_image c1 \<inter> path_image c2 = {a, b}
path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c1
path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c2
open (inside (path_image c1 \<union> path_image c2))
open (outside (path_image c1 \<union> path_image c2))
inside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) \<noteq> {}

goal (1 subgoal):
 1. False
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x xa. \<lbrakk>outside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) = {}; path_image c1 \<inter> path_image c2 = {pathstart c, pathfinish c}; path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c1; path_image c - {pathstart c, pathfinish c} \<subseteq> - path_image c2; open (inside (path_image c1 \<union> path_image c2)); open (outside (path_image c1 \<union> path_image c2)); a = pathstart c; b = pathfinish c; x \<in> path_image c; x \<in> outside (path_image c1 \<union> path_image c2); xa \<in> inside (path_image c1 \<union> path_image c2); xa \<in> path_image c; xa \<noteq> pathstart c\<rbrakk> \<Longrightarrow> xa = pathfinish c
[PROOF STEP]
apply (metis Un_Diff_cancel2 Un_iff compl_sup disjoint_insert(1) inf_commute inf_compl_bot_left2 inside_Un_outside mk_disjoint_insert sup_inf_absorb)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
path_image c \<inter> outside (path_image c1 \<union> path_image c2) = {}

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have out_sub12: "outside(?\<Theta>1 \<union> ?\<Theta>2) \<subseteq> outside(?\<Theta>1 \<union> ?\<Theta>)" "outside(?\<Theta>1 \<union> ?\<Theta>2) \<subseteq> outside(?\<Theta>2 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c1 \<union> path_image c) &&& outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
by (metis Un_commute pi_disjoint outside_Un_outside_Un)+
[PROOF STATE]
proof (state)
this:
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c1 \<union> path_image c)
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have pa1_disj_in2: "?\<Theta>1 \<inter> inside (?\<Theta>2 \<union> ?\<Theta>) = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. path_image c1 \<inter> inside (path_image c2 \<union> path_image c) = {}
[PROOF STEP]
proof (rule ccontr)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. path_image c1 \<inter> inside (path_image c2 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
assume ne: "?\<Theta>1 \<inter> inside (?\<Theta>2 \<union> ?\<Theta>) \<noteq> {}"
[PROOF STATE]
proof (state)
this:
path_image c1 \<inter> inside (path_image c2 \<union> path_image c) \<noteq> {}

goal (1 subgoal):
 1. path_image c1 \<inter> inside (path_image c2 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
have 1: "inside (?\<Theta> \<union> ?\<Theta>2) \<inter> ?\<Theta> = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c \<union> path_image c2) \<inter> path_image c = {}
[PROOF STEP]
by (metis (no_types) Diff_Int_distrib Diff_cancel inf_sup_absorb inf_sup_aci(3) inside_no_overlap)
[PROOF STATE]
proof (state)
this:
inside (path_image c \<union> path_image c2) \<inter> path_image c = {}

goal (1 subgoal):
 1. path_image c1 \<inter> inside (path_image c2 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
have 2: "outside (?\<Theta> \<union> ?\<Theta>2) \<inter> ?\<Theta> = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. outside (path_image c \<union> path_image c2) \<inter> path_image c = {}
[PROOF STEP]
by (metis (no_types) Int_empty_right Int_left_commute inf_sup_absorb outside_no_overlap)
[PROOF STATE]
proof (state)
this:
outside (path_image c \<union> path_image c2) \<inter> path_image c = {}

goal (1 subgoal):
 1. path_image c1 \<inter> inside (path_image c2 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
have "outside (?\<Theta>2 \<union> ?\<Theta>) \<subseteq> outside (?\<Theta>1 \<union> ?\<Theta>2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. outside (path_image c2 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)
[PROOF STEP]
apply (subst Un_commute, rule outside_Un_outside_Un)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. path_image c1 \<inter> outside (path_image c2 \<union> path_image c) = {}
[PROOF STEP]
using connectedD [OF co_c1, of "inside(?\<Theta>2 \<union> ?\<Theta>)" "outside(?\<Theta>2 \<union> ?\<Theta>)"]
        pa_c1 op_in2c op_out2c ne c1 c2c 1 2
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>open (inside (path_image c2 \<union> path_image c)); open (outside (path_image c2 \<union> path_image c)); inside (path_image c2 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c) \<inter> (path_image c1 - {pathstart c1, pathfinish c1}) = {}; path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> inside (path_image c2 \<union> path_image c) \<union> outside (path_image c2 \<union> path_image c)\<rbrakk> \<Longrightarrow> inside (path_image c2 \<union> path_image c) \<inter> (path_image c1 - {pathstart c1, pathfinish c1}) = {} \<or> outside (path_image c2 \<union> path_image c) \<inter> (path_image c1 - {pathstart c1, pathfinish c1}) = {}
path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c2
path_image c1 - {pathstart c1, pathfinish c1} \<subseteq> - path_image c
open (inside (path_image c2 \<union> path_image c))
open (outside (path_image c2 \<union> path_image c))
path_image c1 \<inter> inside (path_image c2 \<union> path_image c) \<noteq> {}
pathstart c1 = a
pathfinish c1 = b
path_image c2 \<inter> path_image c = {a, b}
inside (path_image c \<union> path_image c2) \<inter> path_image c = {}
outside (path_image c \<union> path_image c2) \<inter> path_image c = {}

goal (1 subgoal):
 1. path_image c1 \<inter> outside (path_image c2 \<union> path_image c) = {}
[PROOF STEP]
by (auto simp: inf_sup_aci)
[PROOF STATE]
proof (state)
this:
outside (path_image c2 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)

goal (1 subgoal):
 1. path_image c1 \<inter> inside (path_image c2 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
with out_sub12
[PROOF STATE]
proof (chain)
picking this:
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c1 \<union> path_image c)
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c2 \<union> path_image c)
outside (path_image c2 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)
[PROOF STEP]
have "outside(?\<Theta>1 \<union> ?\<Theta>2) = outside(?\<Theta>2 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
using this:
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c1 \<union> path_image c)
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c2 \<union> path_image c)
outside (path_image c2 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)

goal (1 subgoal):
 1. outside (path_image c1 \<union> path_image c2) = outside (path_image c2 \<union> path_image c)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
outside (path_image c1 \<union> path_image c2) = outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. path_image c1 \<inter> inside (path_image c2 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
outside (path_image c1 \<union> path_image c2) = outside (path_image c2 \<union> path_image c)
[PROOF STEP]
have "frontier(outside(?\<Theta>1 \<union> ?\<Theta>2)) = frontier(outside(?\<Theta>2 \<union> ?\<Theta>))"
[PROOF STATE]
proof (prove)
using this:
outside (path_image c1 \<union> path_image c2) = outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c2 \<union> path_image c))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c2 \<union> path_image c))

goal (1 subgoal):
 1. path_image c1 \<inter> inside (path_image c2 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c2 \<union> path_image c))
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c2 \<union> path_image c))

goal (1 subgoal):
 1. False
[PROOF STEP]
using inout_12 pi_disjoint c c1c c2c fr_out
[PROOF STATE]
proof (prove)
using this:
frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c2 \<union> path_image c))
inside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) \<noteq> {}
path_image c \<inter> outside (path_image c1 \<union> path_image c2) = {}
pathstart c = a
pathfinish c = b
path_image c1 \<inter> path_image c = {a, b}
path_image c2 \<inter> path_image c = {a, b}
frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2
frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c
frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c

goal (1 subgoal):
 1. False
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
path_image c1 \<inter> inside (path_image c2 \<union> path_image c) = {}

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have pa2_disj_in1: "?\<Theta>2 \<inter> inside(?\<Theta>1 \<union> ?\<Theta>) = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. path_image c2 \<inter> inside (path_image c1 \<union> path_image c) = {}
[PROOF STEP]
proof (rule ccontr)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. path_image c2 \<inter> inside (path_image c1 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
assume ne: "?\<Theta>2 \<inter> inside (?\<Theta>1 \<union> ?\<Theta>) \<noteq> {}"
[PROOF STATE]
proof (state)
this:
path_image c2 \<inter> inside (path_image c1 \<union> path_image c) \<noteq> {}

goal (1 subgoal):
 1. path_image c2 \<inter> inside (path_image c1 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
have 1: "inside (?\<Theta> \<union> ?\<Theta>1) \<inter> ?\<Theta> = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c \<union> path_image c1) \<inter> path_image c = {}
[PROOF STEP]
by (metis (no_types) Diff_Int_distrib Diff_cancel inf_sup_absorb inf_sup_aci(3) inside_no_overlap)
[PROOF STATE]
proof (state)
this:
inside (path_image c \<union> path_image c1) \<inter> path_image c = {}

goal (1 subgoal):
 1. path_image c2 \<inter> inside (path_image c1 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
have 2: "outside (?\<Theta> \<union> ?\<Theta>1) \<inter> ?\<Theta> = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. outside (path_image c \<union> path_image c1) \<inter> path_image c = {}
[PROOF STEP]
by (metis (no_types) Int_empty_right Int_left_commute inf_sup_absorb outside_no_overlap)
[PROOF STATE]
proof (state)
this:
outside (path_image c \<union> path_image c1) \<inter> path_image c = {}

goal (1 subgoal):
 1. path_image c2 \<inter> inside (path_image c1 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
have "outside (?\<Theta>1 \<union> ?\<Theta>) \<subseteq> outside (?\<Theta>1 \<union> ?\<Theta>2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. outside (path_image c1 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)
[PROOF STEP]
apply (rule outside_Un_outside_Un)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. path_image c2 \<inter> outside (path_image c1 \<union> path_image c) = {}
[PROOF STEP]
using connectedD [OF co_c2, of "inside(?\<Theta>1 \<union> ?\<Theta>)" "outside(?\<Theta>1 \<union> ?\<Theta>)"]
        pa_c2 op_in1c op_out1c ne c2 c1c 1 2
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>open (inside (path_image c1 \<union> path_image c)); open (outside (path_image c1 \<union> path_image c)); inside (path_image c1 \<union> path_image c) \<inter> outside (path_image c1 \<union> path_image c) \<inter> (path_image c2 - {pathstart c2, pathfinish c2}) = {}; path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> inside (path_image c1 \<union> path_image c) \<union> outside (path_image c1 \<union> path_image c)\<rbrakk> \<Longrightarrow> inside (path_image c1 \<union> path_image c) \<inter> (path_image c2 - {pathstart c2, pathfinish c2}) = {} \<or> outside (path_image c1 \<union> path_image c) \<inter> (path_image c2 - {pathstart c2, pathfinish c2}) = {}
path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c1
path_image c2 - {pathstart c2, pathfinish c2} \<subseteq> - path_image c
open (inside (path_image c1 \<union> path_image c))
open (outside (path_image c1 \<union> path_image c))
path_image c2 \<inter> inside (path_image c1 \<union> path_image c) \<noteq> {}
pathstart c2 = a
pathfinish c2 = b
path_image c1 \<inter> path_image c = {a, b}
inside (path_image c \<union> path_image c1) \<inter> path_image c = {}
outside (path_image c \<union> path_image c1) \<inter> path_image c = {}

goal (1 subgoal):
 1. path_image c2 \<inter> outside (path_image c1 \<union> path_image c) = {}
[PROOF STEP]
by (auto simp: inf_sup_aci)
[PROOF STATE]
proof (state)
this:
outside (path_image c1 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)

goal (1 subgoal):
 1. path_image c2 \<inter> inside (path_image c1 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
with out_sub12
[PROOF STATE]
proof (chain)
picking this:
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c1 \<union> path_image c)
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c2 \<union> path_image c)
outside (path_image c1 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)
[PROOF STEP]
have "outside(?\<Theta>1 \<union> ?\<Theta>2) = outside(?\<Theta>1 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
using this:
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c1 \<union> path_image c)
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c2 \<union> path_image c)
outside (path_image c1 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)

goal (1 subgoal):
 1. outside (path_image c1 \<union> path_image c2) = outside (path_image c1 \<union> path_image c)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
outside (path_image c1 \<union> path_image c2) = outside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. path_image c2 \<inter> inside (path_image c1 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
outside (path_image c1 \<union> path_image c2) = outside (path_image c1 \<union> path_image c)
[PROOF STEP]
have "frontier(outside(?\<Theta>1 \<union> ?\<Theta>2)) = frontier(outside(?\<Theta>1 \<union> ?\<Theta>))"
[PROOF STATE]
proof (prove)
using this:
outside (path_image c1 \<union> path_image c2) = outside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c1 \<union> path_image c))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c1 \<union> path_image c))

goal (1 subgoal):
 1. path_image c2 \<inter> inside (path_image c1 \<union> path_image c) \<noteq> {} \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c1 \<union> path_image c))
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c1 \<union> path_image c))

goal (1 subgoal):
 1. False
[PROOF STEP]
using inout_12 pi_disjoint c c1c c2c fr_out
[PROOF STATE]
proof (prove)
using this:
frontier (outside (path_image c1 \<union> path_image c2)) = frontier (outside (path_image c1 \<union> path_image c))
inside (path_image c1 \<union> path_image c2) \<inter> (path_image c - {pathstart c, pathfinish c}) \<noteq> {}
path_image c \<inter> outside (path_image c1 \<union> path_image c2) = {}
pathstart c = a
pathfinish c = b
path_image c1 \<inter> path_image c = {a, b}
path_image c2 \<inter> path_image c = {a, b}
frontier (outside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2
frontier (outside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c
frontier (outside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c

goal (1 subgoal):
 1. False
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
path_image c2 \<inter> inside (path_image c1 \<union> path_image c) = {}

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have in_sub_in1: "inside(?\<Theta>1 \<union> ?\<Theta>) \<subseteq> inside(?\<Theta>1 \<union> ?\<Theta>2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c) \<subseteq> inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
using pa2_disj_in1 out_sub12
[PROOF STATE]
proof (prove)
using this:
path_image c2 \<inter> inside (path_image c1 \<union> path_image c) = {}
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c1 \<union> path_image c)
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c) \<subseteq> inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
by (auto simp: inside_outside)
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c) \<subseteq> inside (path_image c1 \<union> path_image c2)

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have in_sub_in2: "inside(?\<Theta>2 \<union> ?\<Theta>) \<subseteq> inside(?\<Theta>1 \<union> ?\<Theta>2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c2 \<union> path_image c) \<subseteq> inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
using pa1_disj_in2 out_sub12
[PROOF STATE]
proof (prove)
using this:
path_image c1 \<inter> inside (path_image c2 \<union> path_image c) = {}
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c1 \<union> path_image c)
outside (path_image c1 \<union> path_image c2) \<subseteq> outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. inside (path_image c2 \<union> path_image c) \<subseteq> inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
by (auto simp: inside_outside)
[PROOF STATE]
proof (state)
this:
inside (path_image c2 \<union> path_image c) \<subseteq> inside (path_image c1 \<union> path_image c2)

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have in_sub_out12: "inside(?\<Theta>1 \<union> ?\<Theta>) \<subseteq> outside(?\<Theta>2 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c) \<subseteq> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
fix x
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
assume x: "x \<in> inside (?\<Theta>1 \<union> ?\<Theta>)"
[PROOF STATE]
proof (state)
this:
x \<in> inside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
x \<in> inside (path_image c1 \<union> path_image c)
[PROOF STEP]
have xnot: "x \<notin> ?\<Theta>"
[PROOF STATE]
proof (prove)
using this:
x \<in> inside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. x \<notin> path_image c
[PROOF STEP]
by (simp add: inside_def)
[PROOF STATE]
proof (state)
this:
x \<notin> path_image c

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
obtain z where zim: "z \<in> ?\<Theta>1" and zout: "z \<in> outside(?\<Theta>2 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>z. \<lbrakk>z \<in> path_image c1; z \<in> outside (path_image c2 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
apply (auto simp: outside_inside)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>z. \<lbrakk>z \<in> path_image c1; z \<notin> path_image c2 \<and> z \<notin> path_image c \<and> z \<notin> inside (path_image c2 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using nonempty_simple_path_endless [OF \<open>simple_path c1\<close>]
[PROOF STATE]
proof (prove)
using this:
path_image c1 - {pathstart c1, pathfinish c1} \<noteq> {}

goal (1 subgoal):
 1. (\<And>z. \<lbrakk>z \<in> path_image c1; z \<notin> path_image c2 \<and> z \<notin> path_image c \<and> z \<notin> inside (path_image c2 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (metis Diff_Diff_Int Diff_iff ex_in_conv c1 c1c c1c2 pa1_disj_in2)
[PROOF STATE]
proof (state)
this:
z \<in> path_image c1
z \<in> outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
obtain e where "e > 0" and e: "ball z e \<subseteq> outside(?\<Theta>2 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>e. \<lbrakk>0 < e; ball z e \<subseteq> outside (path_image c2 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using zout op_out2c open_contains_ball_eq
[PROOF STATE]
proof (prove)
using this:
z \<in> outside (path_image c2 \<union> path_image c)
open (outside (path_image c2 \<union> path_image c))
open ?S \<Longrightarrow> (?x \<in> ?S) = (\<exists>e>0. ball ?x e \<subseteq> ?S)

goal (1 subgoal):
 1. (\<And>e. \<lbrakk>0 < e; ball z e \<subseteq> outside (path_image c2 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
0 < e
ball z e \<subseteq> outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
have "z \<in> frontier (inside (?\<Theta>1 \<union> ?\<Theta>))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. z \<in> frontier (inside (path_image c1 \<union> path_image c))
[PROOF STEP]
using zim
[PROOF STATE]
proof (prove)
using this:
z \<in> path_image c1

goal (1 subgoal):
 1. z \<in> frontier (inside (path_image c1 \<union> path_image c))
[PROOF STEP]
by (auto simp: fr_in)
[PROOF STATE]
proof (state)
this:
z \<in> frontier (inside (path_image c1 \<union> path_image c))

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
z \<in> frontier (inside (path_image c1 \<union> path_image c))
[PROOF STEP]
obtain w where w1: "w \<in> inside (?\<Theta>1 \<union> ?\<Theta>)" and dwz: "dist w z < e"
[PROOF STATE]
proof (prove)
using this:
z \<in> frontier (inside (path_image c1 \<union> path_image c))

goal (1 subgoal):
 1. (\<And>w. \<lbrakk>w \<in> inside (path_image c1 \<union> path_image c); dist w z < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using zim \<open>e > 0\<close>
[PROOF STATE]
proof (prove)
using this:
z \<in> frontier (inside (path_image c1 \<union> path_image c))
z \<in> path_image c1
0 < e

goal (1 subgoal):
 1. (\<And>w. \<lbrakk>w \<in> inside (path_image c1 \<union> path_image c); dist w z < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (auto simp: frontier_def closure_approachable)
[PROOF STATE]
proof (state)
this:
w \<in> inside (path_image c1 \<union> path_image c)
dist w z < e

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
w \<in> inside (path_image c1 \<union> path_image c)
dist w z < e
[PROOF STEP]
have w2: "w \<in> outside (?\<Theta>2 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
using this:
w \<in> inside (path_image c1 \<union> path_image c)
dist w z < e

goal (1 subgoal):
 1. w \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
by (metis e dist_commute mem_ball subsetCE)
[PROOF STATE]
proof (state)
this:
w \<in> outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
w \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
have "connected_component (- ?\<Theta>2 \<inter> - ?\<Theta>) z w"
[PROOF STATE]
proof (prove)
using this:
w \<in> outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. connected_component (- path_image c2 \<inter> - path_image c) z w
[PROOF STEP]
apply (simp add: connected_component_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<in> outside (path_image c2 \<union> path_image c) \<Longrightarrow> \<exists>T. connected T \<and> T \<subseteq> - path_image c2 \<and> T \<subseteq> - path_image c \<and> z \<in> T \<and> w \<in> T
[PROOF STEP]
apply (rule_tac x = "outside(?\<Theta>2 \<union> ?\<Theta>)" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<in> outside (path_image c2 \<union> path_image c) \<Longrightarrow> connected (outside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<subseteq> - path_image c2 \<and> outside (path_image c2 \<union> path_image c) \<subseteq> - path_image c \<and> z \<in> outside (path_image c2 \<union> path_image c) \<and> w \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
using zout
[PROOF STATE]
proof (prove)
using this:
z \<in> outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. w \<in> outside (path_image c2 \<union> path_image c) \<Longrightarrow> connected (outside (path_image c2 \<union> path_image c)) \<and> outside (path_image c2 \<union> path_image c) \<subseteq> - path_image c2 \<and> outside (path_image c2 \<union> path_image c) \<subseteq> - path_image c \<and> z \<in> outside (path_image c2 \<union> path_image c) \<and> w \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
apply (auto simp: co_out2c)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x. \<lbrakk>w \<in> outside (path_image c2 \<union> path_image c); z \<in> outside (path_image c2 \<union> path_image c); x \<in> outside (path_image c2 \<union> path_image c); x \<in> path_image c2\<rbrakk> \<Longrightarrow> False
 2. \<And>x. \<lbrakk>w \<in> outside (path_image c2 \<union> path_image c); z \<in> outside (path_image c2 \<union> path_image c); x \<in> outside (path_image c2 \<union> path_image c); x \<in> path_image c\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
apply (simp_all add: outside_inside)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
connected_component (- path_image c2 \<inter> - path_image c) z w

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
connected_component (- path_image c2 \<inter> - path_image c) z w

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
have "connected_component (- ?\<Theta>2 \<inter> - ?\<Theta>) w x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. connected_component (- path_image c2 \<inter> - path_image c) w x
[PROOF STEP]
unfolding connected_component_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>T. connected T \<and> T \<subseteq> - path_image c2 \<inter> - path_image c \<and> w \<in> T \<and> x \<in> T
[PROOF STEP]
using pa2_disj_in1 co_in1c x w1 union_with_outside
[PROOF STATE]
proof (prove)
using this:
path_image c2 \<inter> inside (path_image c1 \<union> path_image c) = {}
connected (inside (path_image c1 \<union> path_image c))
x \<in> inside (path_image c1 \<union> path_image c)
w \<in> inside (path_image c1 \<union> path_image c)
?S \<union> outside ?S = - inside ?S

goal (1 subgoal):
 1. \<exists>T. connected T \<and> T \<subseteq> - path_image c2 \<inter> - path_image c \<and> w \<in> T \<and> x \<in> T
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
connected_component (- path_image c2 \<inter> - path_image c) w x

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
connected_component (- path_image c2 \<inter> - path_image c) z w
connected_component (- path_image c2 \<inter> - path_image c) w x
[PROOF STEP]
have eq: "connected_component_set (- ?\<Theta>2 \<inter> - ?\<Theta>) x =
                         connected_component_set (- ?\<Theta>2 \<inter> - ?\<Theta>) z"
[PROOF STATE]
proof (prove)
using this:
connected_component (- path_image c2 \<inter> - path_image c) z w
connected_component (- path_image c2 \<inter> - path_image c) w x

goal (1 subgoal):
 1. connected_component_set (- path_image c2 \<inter> - path_image c) x = connected_component_set (- path_image c2 \<inter> - path_image c) z
[PROOF STEP]
by (metis (mono_tags, lifting) connected_component_eq mem_Collect_eq)
[PROOF STATE]
proof (state)
this:
connected_component_set (- path_image c2 \<inter> - path_image c) x = connected_component_set (- path_image c2 \<inter> - path_image c) z

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c1 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
show "x \<in> outside (?\<Theta>2 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
using zout x pa2_disj_in1
[PROOF STATE]
proof (prove)
using this:
z \<in> outside (path_image c2 \<union> path_image c)
x \<in> inside (path_image c1 \<union> path_image c)
path_image c2 \<inter> inside (path_image c1 \<union> path_image c) = {}

goal (1 subgoal):
 1. x \<in> outside (path_image c2 \<union> path_image c)
[PROOF STEP]
by (auto simp: outside_def eq xnot)
[PROOF STATE]
proof (state)
this:
x \<in> outside (path_image c2 \<union> path_image c)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c) \<subseteq> outside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
have in_sub_out21: "inside(?\<Theta>2 \<union> ?\<Theta>) \<subseteq> outside(?\<Theta>1 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c2 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
fix x
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
assume x: "x \<in> inside (?\<Theta>2 \<union> ?\<Theta>)"
[PROOF STATE]
proof (state)
this:
x \<in> inside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
x \<in> inside (path_image c2 \<union> path_image c)
[PROOF STEP]
have xnot: "x \<notin> ?\<Theta>"
[PROOF STATE]
proof (prove)
using this:
x \<in> inside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. x \<notin> path_image c
[PROOF STEP]
by (simp add: inside_def)
[PROOF STATE]
proof (state)
this:
x \<notin> path_image c

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
obtain z where zim: "z \<in> ?\<Theta>2" and zout: "z \<in> outside(?\<Theta>1 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>z. \<lbrakk>z \<in> path_image c2; z \<in> outside (path_image c1 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
apply (auto simp: outside_inside)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>z. \<lbrakk>z \<in> path_image c2; z \<notin> path_image c1 \<and> z \<notin> path_image c \<and> z \<notin> inside (path_image c1 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using nonempty_simple_path_endless [OF \<open>simple_path c2\<close>]
[PROOF STATE]
proof (prove)
using this:
path_image c2 - {pathstart c2, pathfinish c2} \<noteq> {}

goal (1 subgoal):
 1. (\<And>z. \<lbrakk>z \<in> path_image c2; z \<notin> path_image c1 \<and> z \<notin> path_image c \<and> z \<notin> inside (path_image c1 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (metis (no_types, opaque_lifting) Diff_Diff_Int Diff_iff c1c2 c2 c2c ex_in_conv pa2_disj_in1)
[PROOF STATE]
proof (state)
this:
z \<in> path_image c2
z \<in> outside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
obtain e where "e > 0" and e: "ball z e \<subseteq> outside(?\<Theta>1 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>e. \<lbrakk>0 < e; ball z e \<subseteq> outside (path_image c1 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using zout op_out1c open_contains_ball_eq
[PROOF STATE]
proof (prove)
using this:
z \<in> outside (path_image c1 \<union> path_image c)
open (outside (path_image c1 \<union> path_image c))
open ?S \<Longrightarrow> (?x \<in> ?S) = (\<exists>e>0. ball ?x e \<subseteq> ?S)

goal (1 subgoal):
 1. (\<And>e. \<lbrakk>0 < e; ball z e \<subseteq> outside (path_image c1 \<union> path_image c)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
0 < e
ball z e \<subseteq> outside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
have "z \<in> frontier (inside (?\<Theta>2 \<union> ?\<Theta>))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. z \<in> frontier (inside (path_image c2 \<union> path_image c))
[PROOF STEP]
using zim
[PROOF STATE]
proof (prove)
using this:
z \<in> path_image c2

goal (1 subgoal):
 1. z \<in> frontier (inside (path_image c2 \<union> path_image c))
[PROOF STEP]
by (auto simp: fr_in)
[PROOF STATE]
proof (state)
this:
z \<in> frontier (inside (path_image c2 \<union> path_image c))

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
z \<in> frontier (inside (path_image c2 \<union> path_image c))
[PROOF STEP]
obtain w where w2: "w \<in> inside (?\<Theta>2 \<union> ?\<Theta>)" and dwz: "dist w z < e"
[PROOF STATE]
proof (prove)
using this:
z \<in> frontier (inside (path_image c2 \<union> path_image c))

goal (1 subgoal):
 1. (\<And>w. \<lbrakk>w \<in> inside (path_image c2 \<union> path_image c); dist w z < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using zim \<open>e > 0\<close>
[PROOF STATE]
proof (prove)
using this:
z \<in> frontier (inside (path_image c2 \<union> path_image c))
z \<in> path_image c2
0 < e

goal (1 subgoal):
 1. (\<And>w. \<lbrakk>w \<in> inside (path_image c2 \<union> path_image c); dist w z < e\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (auto simp: frontier_def closure_approachable)
[PROOF STATE]
proof (state)
this:
w \<in> inside (path_image c2 \<union> path_image c)
dist w z < e

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
w \<in> inside (path_image c2 \<union> path_image c)
dist w z < e
[PROOF STEP]
have w1: "w \<in> outside (?\<Theta>1 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
using this:
w \<in> inside (path_image c2 \<union> path_image c)
dist w z < e

goal (1 subgoal):
 1. w \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
by (metis e dist_commute mem_ball subsetCE)
[PROOF STATE]
proof (state)
this:
w \<in> outside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
w \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
have "connected_component (- ?\<Theta>1 \<inter> - ?\<Theta>) z w"
[PROOF STATE]
proof (prove)
using this:
w \<in> outside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. connected_component (- path_image c1 \<inter> - path_image c) z w
[PROOF STEP]
apply (simp add: connected_component_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<in> outside (path_image c1 \<union> path_image c) \<Longrightarrow> \<exists>T. connected T \<and> T \<subseteq> - path_image c1 \<and> T \<subseteq> - path_image c \<and> z \<in> T \<and> w \<in> T
[PROOF STEP]
apply (rule_tac x = "outside(?\<Theta>1 \<union> ?\<Theta>)" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<in> outside (path_image c1 \<union> path_image c) \<Longrightarrow> connected (outside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<subseteq> - path_image c1 \<and> outside (path_image c1 \<union> path_image c) \<subseteq> - path_image c \<and> z \<in> outside (path_image c1 \<union> path_image c) \<and> w \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
using zout
[PROOF STATE]
proof (prove)
using this:
z \<in> outside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. w \<in> outside (path_image c1 \<union> path_image c) \<Longrightarrow> connected (outside (path_image c1 \<union> path_image c)) \<and> outside (path_image c1 \<union> path_image c) \<subseteq> - path_image c1 \<and> outside (path_image c1 \<union> path_image c) \<subseteq> - path_image c \<and> z \<in> outside (path_image c1 \<union> path_image c) \<and> w \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
apply (auto simp: co_out1c)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x. \<lbrakk>w \<in> outside (path_image c1 \<union> path_image c); z \<in> outside (path_image c1 \<union> path_image c); x \<in> outside (path_image c1 \<union> path_image c); x \<in> path_image c1\<rbrakk> \<Longrightarrow> False
 2. \<And>x. \<lbrakk>w \<in> outside (path_image c1 \<union> path_image c); z \<in> outside (path_image c1 \<union> path_image c); x \<in> outside (path_image c1 \<union> path_image c); x \<in> path_image c\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
apply (simp_all add: outside_inside)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
connected_component (- path_image c1 \<inter> - path_image c) z w

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
connected_component (- path_image c1 \<inter> - path_image c) z w

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
have "connected_component (- ?\<Theta>1 \<inter> - ?\<Theta>) w x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. connected_component (- path_image c1 \<inter> - path_image c) w x
[PROOF STEP]
unfolding connected_component_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>T. connected T \<and> T \<subseteq> - path_image c1 \<inter> - path_image c \<and> w \<in> T \<and> x \<in> T
[PROOF STEP]
using pa1_disj_in2 co_in2c x w2 union_with_outside
[PROOF STATE]
proof (prove)
using this:
path_image c1 \<inter> inside (path_image c2 \<union> path_image c) = {}
connected (inside (path_image c2 \<union> path_image c))
x \<in> inside (path_image c2 \<union> path_image c)
w \<in> inside (path_image c2 \<union> path_image c)
?S \<union> outside ?S = - inside ?S

goal (1 subgoal):
 1. \<exists>T. connected T \<and> T \<subseteq> - path_image c1 \<inter> - path_image c \<and> w \<in> T \<and> x \<in> T
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
connected_component (- path_image c1 \<inter> - path_image c) w x

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
connected_component (- path_image c1 \<inter> - path_image c) z w
connected_component (- path_image c1 \<inter> - path_image c) w x
[PROOF STEP]
have eq: "connected_component_set (- ?\<Theta>1 \<inter> - ?\<Theta>) x =
                           connected_component_set (- ?\<Theta>1 \<inter> - ?\<Theta>) z"
[PROOF STATE]
proof (prove)
using this:
connected_component (- path_image c1 \<inter> - path_image c) z w
connected_component (- path_image c1 \<inter> - path_image c) w x

goal (1 subgoal):
 1. connected_component_set (- path_image c1 \<inter> - path_image c) x = connected_component_set (- path_image c1 \<inter> - path_image c) z
[PROOF STEP]
by (metis (no_types, lifting) connected_component_eq mem_Collect_eq)
[PROOF STATE]
proof (state)
this:
connected_component_set (- path_image c1 \<inter> - path_image c) x = connected_component_set (- path_image c1 \<inter> - path_image c) z

goal (1 subgoal):
 1. \<And>x. x \<in> inside (path_image c2 \<union> path_image c) \<Longrightarrow> x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
show "x \<in> outside (?\<Theta>1 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
using zout x pa1_disj_in2
[PROOF STATE]
proof (prove)
using this:
z \<in> outside (path_image c1 \<union> path_image c)
x \<in> inside (path_image c2 \<union> path_image c)
path_image c1 \<inter> inside (path_image c2 \<union> path_image c) = {}

goal (1 subgoal):
 1. x \<in> outside (path_image c1 \<union> path_image c)
[PROOF STEP]
by (auto simp: outside_def eq xnot)
[PROOF STATE]
proof (state)
this:
x \<in> outside (path_image c1 \<union> path_image c)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
inside (path_image c2 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. (\<lbrakk>inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}; inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. thesis
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}
 2. inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
show "inside (?\<Theta>1 \<union> ?\<Theta>) \<inter> inside (?\<Theta>2 \<union> ?\<Theta>) = {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}
[PROOF STEP]
by (metis Int_Un_distrib in_sub_out12 bot_eq_sup_iff disjoint_eq_subset_Compl outside_inside)
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c) \<inter> inside (path_image c2 \<union> path_image c) = {}

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
have *: "outside (?\<Theta>1 \<union> ?\<Theta>) \<inter> outside (?\<Theta>2 \<union> ?\<Theta>) \<subseteq> outside (?\<Theta>1 \<union> ?\<Theta>2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)
[PROOF STEP]
proof (rule components_maximal)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. outside (path_image c1 \<union> path_image c2) \<in> components ?s
 2. connected (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c))
 3. outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c) \<subseteq> ?s
 4. outside (path_image c1 \<union> path_image c2) \<inter> (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c)) \<noteq> {}
[PROOF STEP]
show out_in: "outside (?\<Theta>1 \<union> ?\<Theta>2) \<in> components (- (?\<Theta>1 \<union> ?\<Theta>2))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. outside (path_image c1 \<union> path_image c2) \<in> components (- (path_image c1 \<union> path_image c2))
[PROOF STEP]
apply (simp only: outside_in_components co_out12c)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. True \<and> outside (path_image c1 \<union> path_image c2) \<noteq> {}
[PROOF STEP]
by (metis bounded_empty fr_out(1) frontier_empty unbounded_outside)
[PROOF STATE]
proof (state)
this:
outside (path_image c1 \<union> path_image c2) \<in> components (- (path_image c1 \<union> path_image c2))

goal (3 subgoals):
 1. connected (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c))
 2. outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c) \<subseteq> - (path_image c1 \<union> path_image c2)
 3. outside (path_image c1 \<union> path_image c2) \<inter> (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c)) \<noteq> {}
[PROOF STEP]
have conn_U: "connected (- (closure (inside (?\<Theta>1 \<union> ?\<Theta>)) \<union> closure (inside (?\<Theta>2 \<union> ?\<Theta>))))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. connected (- (closure (inside (path_image c1 \<union> path_image c)) \<union> closure (inside (path_image c2 \<union> path_image c))))
[PROOF STEP]
proof (rule Janiszewski_connected, simp_all)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. bounded (inside (path_image c1 \<union> path_image c))
 2. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
 3. connected (- closure (inside (path_image c1 \<union> path_image c)))
 4. connected (- closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
show "bounded (inside (?\<Theta>1 \<union> ?\<Theta>))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. bounded (inside (path_image c1 \<union> path_image c))
[PROOF STEP]
by (simp add: \<open>simple_path c1\<close> \<open>simple_path c\<close> bounded_inside bounded_simple_path_image)
[PROOF STATE]
proof (state)
this:
bounded (inside (path_image c1 \<union> path_image c))

goal (3 subgoals):
 1. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
 2. connected (- closure (inside (path_image c1 \<union> path_image c)))
 3. connected (- closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
have if1: "- (inside (?\<Theta>1 \<union> ?\<Theta>) \<union> frontier (inside (?\<Theta>1 \<union> ?\<Theta>))) = - ?\<Theta>1 \<inter> - ?\<Theta> \<inter> - inside (?\<Theta>1 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - (inside (path_image c1 \<union> path_image c) \<union> frontier (inside (path_image c1 \<union> path_image c))) = - path_image c1 \<inter> - path_image c \<inter> - inside (path_image c1 \<union> path_image c)
[PROOF STEP]
by (metis (no_types, lifting) Int_commute Jordan_inside_outside c c1 compl_sup path_image_join path_image_reversepath pathfinish_join pathfinish_reversepath pathstart_join pathstart_reversepath sp(2) closure_Un_frontier fr_out(3))
[PROOF STATE]
proof (state)
this:
- (inside (path_image c1 \<union> path_image c) \<union> frontier (inside (path_image c1 \<union> path_image c))) = - path_image c1 \<inter> - path_image c \<inter> - inside (path_image c1 \<union> path_image c)

goal (3 subgoals):
 1. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
 2. connected (- closure (inside (path_image c1 \<union> path_image c)))
 3. connected (- closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
- (inside (path_image c1 \<union> path_image c) \<union> frontier (inside (path_image c1 \<union> path_image c))) = - path_image c1 \<inter> - path_image c \<inter> - inside (path_image c1 \<union> path_image c)
[PROOF STEP]
show "connected (- closure (inside (?\<Theta>1 \<union> ?\<Theta>)))"
[PROOF STATE]
proof (prove)
using this:
- (inside (path_image c1 \<union> path_image c) \<union> frontier (inside (path_image c1 \<union> path_image c))) = - path_image c1 \<inter> - path_image c \<inter> - inside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. connected (- closure (inside (path_image c1 \<union> path_image c)))
[PROOF STEP]
by (metis Compl_Un outside_inside co_out1c closure_Un_frontier)
[PROOF STATE]
proof (state)
this:
connected (- closure (inside (path_image c1 \<union> path_image c)))

goal (2 subgoals):
 1. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
 2. connected (- closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
have if2: "- (inside (?\<Theta>2 \<union> ?\<Theta>) \<union> frontier (inside (?\<Theta>2 \<union> ?\<Theta>))) = - ?\<Theta>2 \<inter> - ?\<Theta> \<inter> - inside (?\<Theta>2 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - (inside (path_image c2 \<union> path_image c) \<union> frontier (inside (path_image c2 \<union> path_image c))) = - path_image c2 \<inter> - path_image c \<inter> - inside (path_image c2 \<union> path_image c)
[PROOF STEP]
by (metis (no_types, lifting) Int_commute Jordan_inside_outside c c2 compl_sup path_image_join path_image_reversepath pathfinish_join pathfinish_reversepath pathstart_join pathstart_reversepath sp(3) closure_Un_frontier fr_out(2))
[PROOF STATE]
proof (state)
this:
- (inside (path_image c2 \<union> path_image c) \<union> frontier (inside (path_image c2 \<union> path_image c))) = - path_image c2 \<inter> - path_image c \<inter> - inside (path_image c2 \<union> path_image c)

goal (2 subgoals):
 1. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
 2. connected (- closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
- (inside (path_image c2 \<union> path_image c) \<union> frontier (inside (path_image c2 \<union> path_image c))) = - path_image c2 \<inter> - path_image c \<inter> - inside (path_image c2 \<union> path_image c)
[PROOF STEP]
show "connected (- closure (inside (?\<Theta>2 \<union> ?\<Theta>)))"
[PROOF STATE]
proof (prove)
using this:
- (inside (path_image c2 \<union> path_image c) \<union> frontier (inside (path_image c2 \<union> path_image c))) = - path_image c2 \<inter> - path_image c \<inter> - inside (path_image c2 \<union> path_image c)

goal (1 subgoal):
 1. connected (- closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
by (metis Compl_Un outside_inside co_out2c closure_Un_frontier)
[PROOF STATE]
proof (state)
this:
connected (- closure (inside (path_image c2 \<union> path_image c)))

goal (1 subgoal):
 1. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
have "connected(?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. connected (path_image c)
[PROOF STEP]
by (metis \<open>simple_path c\<close> connected_simple_path_image)
[PROOF STATE]
proof (state)
this:
connected (path_image c)

goal (1 subgoal):
 1. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
connected (path_image c)

goal (1 subgoal):
 1. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
have "closure (inside (?\<Theta>1 \<union> ?\<Theta>)) \<inter> closure (inside (?\<Theta>2 \<union> ?\<Theta>)) = ?\<Theta>"
          (is "?lhs = ?rhs")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)) = path_image c
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)) \<subseteq> path_image c
 2. path_image c \<subseteq> closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c))
[PROOF STEP]
show "?lhs \<subseteq> ?rhs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)) \<subseteq> path_image c
[PROOF STEP]
proof clarify
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. \<lbrakk>x \<in> closure (inside (path_image c1 \<union> path_image c)); x \<in> closure (inside (path_image c2 \<union> path_image c))\<rbrakk> \<Longrightarrow> x \<in> path_image c
[PROOF STEP]
fix x
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. \<lbrakk>x \<in> closure (inside (path_image c1 \<union> path_image c)); x \<in> closure (inside (path_image c2 \<union> path_image c))\<rbrakk> \<Longrightarrow> x \<in> path_image c
[PROOF STEP]
assume x: "x \<in> closure (inside (?\<Theta>1 \<union> ?\<Theta>))" "x \<in> closure (inside (?\<Theta>2 \<union> ?\<Theta>))"
[PROOF STATE]
proof (state)
this:
x \<in> closure (inside (path_image c1 \<union> path_image c))
x \<in> closure (inside (path_image c2 \<union> path_image c))

goal (1 subgoal):
 1. \<And>x. \<lbrakk>x \<in> closure (inside (path_image c1 \<union> path_image c)); x \<in> closure (inside (path_image c2 \<union> path_image c))\<rbrakk> \<Longrightarrow> x \<in> path_image c
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
x \<in> closure (inside (path_image c1 \<union> path_image c))
x \<in> closure (inside (path_image c2 \<union> path_image c))
[PROOF STEP]
have "x \<notin> inside (?\<Theta>1 \<union> ?\<Theta>)"
[PROOF STATE]
proof (prove)
using this:
x \<in> closure (inside (path_image c1 \<union> path_image c))
x \<in> closure (inside (path_image c2 \<union> path_image c))

goal (1 subgoal):
 1. x \<notin> inside (path_image c1 \<union> path_image c)
[PROOF STEP]
by (meson closure_iff_nhds_not_empty in_sub_out12 inside_Int_outside op_in1c)
[PROOF STATE]
proof (state)
this:
x \<notin> inside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. \<And>x. \<lbrakk>x \<in> closure (inside (path_image c1 \<union> path_image c)); x \<in> closure (inside (path_image c2 \<union> path_image c))\<rbrakk> \<Longrightarrow> x \<in> path_image c
[PROOF STEP]
with fr_in x
[PROOF STATE]
proof (chain)
picking this:
frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2
frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c
frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c
x \<in> closure (inside (path_image c1 \<union> path_image c))
x \<in> closure (inside (path_image c2 \<union> path_image c))
x \<notin> inside (path_image c1 \<union> path_image c)
[PROOF STEP]
show "x \<in> ?\<Theta>"
[PROOF STATE]
proof (prove)
using this:
frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2
frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c
frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c
x \<in> closure (inside (path_image c1 \<union> path_image c))
x \<in> closure (inside (path_image c2 \<union> path_image c))
x \<notin> inside (path_image c1 \<union> path_image c)

goal (1 subgoal):
 1. x \<in> path_image c
[PROOF STEP]
by (metis c1c c1c2 closure_Un_frontier pa1_disj_in2 Int_iff Un_iff insert_disjoint(2) insert_subset subsetI subset_antisym)
[PROOF STATE]
proof (state)
this:
x \<in> path_image c

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)) \<subseteq> path_image c

goal (1 subgoal):
 1. path_image c \<subseteq> closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c))
[PROOF STEP]
show "?rhs \<subseteq> ?lhs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. path_image c \<subseteq> closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c))
[PROOF STEP]
using if1 if2 closure_Un_frontier
[PROOF STATE]
proof (prove)
using this:
- (inside (path_image c1 \<union> path_image c) \<union> frontier (inside (path_image c1 \<union> path_image c))) = - path_image c1 \<inter> - path_image c \<inter> - inside (path_image c1 \<union> path_image c)
- (inside (path_image c2 \<union> path_image c) \<union> frontier (inside (path_image c2 \<union> path_image c))) = - path_image c2 \<inter> - path_image c \<inter> - inside (path_image c2 \<union> path_image c)
closure ?S = ?S \<union> frontier ?S

goal (1 subgoal):
 1. path_image c \<subseteq> closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c))
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
path_image c \<subseteq> closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c))

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)) = path_image c

goal (1 subgoal):
 1. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
connected (path_image c)
closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)) = path_image c
[PROOF STEP]
show "connected (closure (inside (?\<Theta>1 \<union> ?\<Theta>)) \<inter> closure (inside (?\<Theta>2 \<union> ?\<Theta>)))"
[PROOF STATE]
proof (prove)
using this:
connected (path_image c)
closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)) = path_image c

goal (1 subgoal):
 1. connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
connected (closure (inside (path_image c1 \<union> path_image c)) \<inter> closure (inside (path_image c2 \<union> path_image c)))

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
connected (- (closure (inside (path_image c1 \<union> path_image c)) \<union> closure (inside (path_image c2 \<union> path_image c))))

goal (3 subgoals):
 1. connected (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c))
 2. outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c) \<subseteq> - (path_image c1 \<union> path_image c2)
 3. outside (path_image c1 \<union> path_image c2) \<inter> (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c)) \<noteq> {}
[PROOF STEP]
show "connected (outside (?\<Theta>1 \<union> ?\<Theta>) \<inter> outside (?\<Theta>2 \<union> ?\<Theta>))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. connected (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c))
[PROOF STEP]
using fr_in conn_U
[PROOF STATE]
proof (prove)
using this:
frontier (inside (path_image c1 \<union> path_image c2)) = path_image c1 \<union> path_image c2
frontier (inside (path_image c2 \<union> path_image c)) = path_image c2 \<union> path_image c
frontier (inside (path_image c1 \<union> path_image c)) = path_image c1 \<union> path_image c
connected (- (closure (inside (path_image c1 \<union> path_image c)) \<union> closure (inside (path_image c2 \<union> path_image c))))

goal (1 subgoal):
 1. connected (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c))
[PROOF STEP]
by (simp add: closure_Un_frontier outside_inside Un_commute)
[PROOF STATE]
proof (state)
this:
connected (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c))

goal (2 subgoals):
 1. outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c) \<subseteq> - (path_image c1 \<union> path_image c2)
 2. outside (path_image c1 \<union> path_image c2) \<inter> (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c)) \<noteq> {}
[PROOF STEP]
show "outside (?\<Theta>1 \<union> ?\<Theta>) \<inter> outside (?\<Theta>2 \<union> ?\<Theta>) \<subseteq> - (?\<Theta>1 \<union> ?\<Theta>2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c) \<subseteq> - (path_image c1 \<union> path_image c2)
[PROOF STEP]
by clarify (metis Diff_Compl Diff_iff Un_iff inf_sup_absorb outside_inside)
[PROOF STATE]
proof (state)
this:
outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c) \<subseteq> - (path_image c1 \<union> path_image c2)

goal (1 subgoal):
 1. outside (path_image c1 \<union> path_image c2) \<inter> (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c)) \<noteq> {}
[PROOF STEP]
show "outside (?\<Theta>1 \<union> ?\<Theta>2) \<inter>
            (outside (?\<Theta>1 \<union> ?\<Theta>) \<inter> outside (?\<Theta>2 \<union> ?\<Theta>)) \<noteq> {}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. outside (path_image c1 \<union> path_image c2) \<inter> (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c)) \<noteq> {}
[PROOF STEP]
by (metis Int_assoc out_in inf.orderE out_sub12(1) out_sub12(2) outside_in_components)
[PROOF STATE]
proof (state)
this:
outside (path_image c1 \<union> path_image c2) \<inter> (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c)) \<noteq> {}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c) \<subseteq> outside (path_image c1 \<union> path_image c2)

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
show "inside (?\<Theta>1 \<union> ?\<Theta>) \<union> inside (?\<Theta>2 \<union> ?\<Theta>) \<union> (?\<Theta> - {a, b}) = inside (?\<Theta>1 \<union> ?\<Theta>2)"
      (is "?lhs = ?rhs")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) \<subseteq> inside (path_image c1 \<union> path_image c2)
 2. inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b})
[PROOF STEP]
show "?lhs \<subseteq> ?rhs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) \<subseteq> inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
apply (simp add: in_sub_in1 in_sub_in2)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. path_image c - {a, b} \<subseteq> inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
using c1c c2c inside_outside pi_disjoint
[PROOF STATE]
proof (prove)
using this:
path_image c1 \<inter> path_image c = {a, b}
path_image c2 \<inter> path_image c = {a, b}
inside ?S = - (?S \<union> outside ?S)
path_image c \<inter> outside (path_image c1 \<union> path_image c2) = {}

goal (1 subgoal):
 1. path_image c - {a, b} \<subseteq> inside (path_image c1 \<union> path_image c2)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) \<subseteq> inside (path_image c1 \<union> path_image c2)

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b})
[PROOF STEP]
have "inside (?\<Theta>1 \<union> ?\<Theta>2) \<subseteq> inside (?\<Theta>1 \<union> ?\<Theta>) \<union> inside (?\<Theta>2 \<union> ?\<Theta>) \<union> (?\<Theta>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> path_image c
[PROOF STEP]
using Compl_anti_mono [OF *]
[PROOF STATE]
proof (prove)
using this:
- outside (path_image c1 \<union> path_image c2) \<subseteq> - (outside (path_image c1 \<union> path_image c) \<inter> outside (path_image c2 \<union> path_image c))

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> path_image c
[PROOF STEP]
by (force simp: inside_outside)
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> path_image c

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b})
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> path_image c

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b})
[PROOF STEP]
have "inside (?\<Theta>1 \<union> ?\<Theta>2) \<subseteq> -{a,b}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<subseteq> - {a, b}
[PROOF STEP]
using c1 union_with_outside
[PROOF STATE]
proof (prove)
using this:
pathstart c1 = a
pathfinish c1 = b
?S \<union> outside ?S = - inside ?S

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<subseteq> - {a, b}
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c2) \<subseteq> - {a, b}

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b})
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> path_image c
inside (path_image c1 \<union> path_image c2) \<subseteq> - {a, b}
[PROOF STEP]
show "?rhs \<subseteq> ?lhs"
[PROOF STATE]
proof (prove)
using this:
inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> path_image c
inside (path_image c1 \<union> path_image c2) \<subseteq> - {a, b}

goal (1 subgoal):
 1. inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b})
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c2) \<subseteq> inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b})

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
inside (path_image c1 \<union> path_image c) \<union> inside (path_image c2 \<union> path_image c) \<union> (path_image c - {a, b}) = inside (path_image c1 \<union> path_image c2)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
thesis

goal:
No subgoals!
[PROOF STEP]
qed