[STATEMENT]
theorem kruskal:
  "VARS e f h
  [ symmetric g ]
  f := bot;
  h := g;
  WHILE h \<noteq> bot
    INV { kruskal_invariant f g h }
    VAR { card { x . regular x \<and> x \<le> --h } }
     DO e := minarc h;
        IF e \<le> -forest_components f THEN
          f := (f \<sqinter> -(top * e * f\<^sup>T\<^sup>\<star>)) \<squnion> (f \<sqinter> top * e * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> e
        ELSE
          SKIP
        FI;
        h := h \<sqinter> -e \<sqinter> -e\<^sup>T
     OD
  [ minimum_spanning_forest f g ]"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. [symmetric g]
f := bot; h := g; WHILE h \<noteq> bot INV {kruskal_invariant f g h}  VAR {card {x. regular x \<and> x \<le> - - h}}
DO e := minarc h; IF e \<le> - forest_components f THEN f := f \<sqinter> - (top * e * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * e * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> e  ELSE SKIP FI; h := h \<sqinter> - e \<sqinter> - e\<^sup>T OD
[minimum_spanning_forest f g]
[PROOF STEP]
proof vcg_tc_simp
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. symmetric g \<Longrightarrow> kruskal_invariant bot g g
 2. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 3. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
assume "symmetric g"
[PROOF STATE]
proof (state)
this:
symmetric g

goal (3 subgoals):
 1. symmetric g \<Longrightarrow> kruskal_invariant bot g g
 2. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 3. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
thus "kruskal_invariant bot g g"
[PROOF STATE]
proof (prove)
using this:
symmetric g

goal (1 subgoal):
 1. kruskal_invariant bot g g
[PROOF STEP]
using kruskal_vc_1 kruskal_exists_minimal_spanning kruskal_invariant_def
[PROOF STATE]
proof (prove)
using this:
symmetric g
symmetric ?g \<Longrightarrow> kruskal_spanning_invariant bot ?g ?g
symmetric ?g \<Longrightarrow> \<exists>f. minimum_spanning_forest f ?g
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)

goal (1 subgoal):
 1. kruskal_invariant bot g g
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
kruskal_invariant bot g g

goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
fix f h
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
let ?e = "minarc h"
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
let ?f = "(f \<sqinter> -(top * ?e * f\<^sup>T\<^sup>\<star>)) \<squnion> (f \<sqinter> top * ?e * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> ?e"
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
let ?h = "h \<sqinter> -?e \<sqinter> -?e\<^sup>T"
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
let ?F = "forest_components f"
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
let ?n1 = "card { x . regular x \<and> x \<le> --h }"
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
let ?n2 = "card { x . regular x \<and> x \<le> --h \<and> x \<le> -?e \<and> x \<le> -?e\<^sup>T }"
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
assume 1: "kruskal_invariant f g h \<and> h \<noteq> bot"
[PROOF STATE]
proof (state)
this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
from 1
[PROOF STATE]
proof (chain)
picking this:
kruskal_invariant f g h \<and> h \<noteq> bot
[PROOF STEP]
obtain w where 2: "minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T"
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (1 subgoal):
 1. (\<And>w. minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using kruskal_invariant_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)

goal (1 subgoal):
 1. (\<And>w. minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
hence 3: "regular f \<and> regular w \<and> regular ?e"
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. regular f \<and> regular w \<and> regular (minarc h)
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
kruskal_invariant f g h \<and> h \<noteq> bot

goal (1 subgoal):
 1. regular f \<and> regular w \<and> regular (minarc h)
[PROOF STEP]
by (metis kruskal_invariant_def kruskal_spanning_invariant_def minimum_spanning_forest_def spanning_forest_def minarc_regular)
[PROOF STATE]
proof (state)
this:
regular f \<and> regular w \<and> regular (minarc h)

goal (2 subgoals):
 1. \<And>f h. kruskal_invariant f g h \<and> h \<noteq> bot \<Longrightarrow> (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
 2. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
show "(?e \<le> -?F \<longrightarrow> kruskal_invariant ?f g ?h \<and> ?n2 < ?n1) \<and> (\<not> ?e \<le> -?F \<longrightarrow> kruskal_invariant f g ?h \<and> ?n2 < ?n1)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})
[PROOF STEP]
proof (rule conjI)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
 2. \<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
show "?e \<le> -?F \<longrightarrow> kruskal_invariant ?f g ?h \<and> ?n2 < ?n1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. minarc h \<le> - forest_components f \<Longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
assume 4: "?e \<le> -?F"
[PROOF STATE]
proof (state)
this:
minarc h \<le> - forest_components f

goal (1 subgoal):
 1. minarc h \<le> - forest_components f \<Longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
have 5: "equivalence ?F"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. equivalence (forest_components f)
[PROOF STEP]
using 1 kruskal_invariant_def kruskal_spanning_invariant_def forest_components_equivalence spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)
kruskal_spanning_invariant ?f ?g ?h \<equiv> symmetric ?g \<and> ?h = ?h\<^sup>T \<and> ?g \<sqinter> - - ?h = ?h \<and> spanning_forest ?f (- ?h \<sqinter> ?g)
injective ?x \<Longrightarrow> equivalence (forest_components ?x)
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. equivalence (forest_components f)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
equivalence (forest_components f)

goal (1 subgoal):
 1. minarc h \<le> - forest_components f \<Longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
have "?e\<^sup>T * top * ?e\<^sup>T = ?e\<^sup>T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. minarc h\<^sup>T * top * minarc h\<^sup>T = minarc h\<^sup>T
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (1 subgoal):
 1. minarc h\<^sup>T * top * minarc h\<^sup>T = minarc h\<^sup>T
[PROOF STEP]
by (simp add: arc_top_arc minarc_arc)
[PROOF STATE]
proof (state)
this:
minarc h\<^sup>T * top * minarc h\<^sup>T = minarc h\<^sup>T

goal (1 subgoal):
 1. minarc h \<le> - forest_components f \<Longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
hence "?e\<^sup>T * top * ?e\<^sup>T \<le> -?F"
[PROOF STATE]
proof (prove)
using this:
minarc h\<^sup>T * top * minarc h\<^sup>T = minarc h\<^sup>T

goal (1 subgoal):
 1. minarc h\<^sup>T * top * minarc h\<^sup>T \<le> - forest_components f
[PROOF STEP]
using 4 5 conv_complement conv_isotone
[PROOF STATE]
proof (prove)
using this:
minarc h\<^sup>T * top * minarc h\<^sup>T = minarc h\<^sup>T
minarc h \<le> - forest_components f
equivalence (forest_components f)
(- ?x)\<^sup>T = - ?x\<^sup>T
?x \<le> ?y \<Longrightarrow> ?x\<^sup>T \<le> ?y\<^sup>T

goal (1 subgoal):
 1. minarc h\<^sup>T * top * minarc h\<^sup>T \<le> - forest_components f
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
minarc h\<^sup>T * top * minarc h\<^sup>T \<le> - forest_components f

goal (1 subgoal):
 1. minarc h \<le> - forest_components f \<Longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
hence 6: "?e * ?F * ?e = bot"
[PROOF STATE]
proof (prove)
using this:
minarc h\<^sup>T * top * minarc h\<^sup>T \<le> - forest_components f

goal (1 subgoal):
 1. minarc h * forest_components f * minarc h = bot
[PROOF STEP]
using le_bot triple_schroeder_p
[PROOF STATE]
proof (prove)
using this:
minarc h\<^sup>T * top * minarc h\<^sup>T \<le> - forest_components f
?a \<le> bot \<Longrightarrow> ?a = bot
(?x * ?y * ?z \<le> - ?w) = (?x\<^sup>T * ?w * ?z\<^sup>T \<le> - ?y)

goal (1 subgoal):
 1. minarc h * forest_components f * minarc h = bot
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
minarc h * forest_components f * minarc h = bot

goal (1 subgoal):
 1. minarc h \<le> - forest_components f \<Longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
show "kruskal_invariant ?f g ?h \<and> ?n2 < ?n1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
proof (unfold kruskal_invariant_def, intro conjI)
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. kruskal_spanning_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T)
 2. \<exists>w. minimum_spanning_forest w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> w \<squnion> w\<^sup>T
 3. card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
show "kruskal_spanning_invariant ?f g ?h"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. kruskal_spanning_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T)
[PROOF STEP]
using 1 4 kruskal_vc_2 kruskal_invariant_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
minarc h \<le> - forest_components f
\<lbrakk>kruskal_spanning_invariant ?f ?g ?h; ?h \<noteq> bot\<rbrakk> \<Longrightarrow> (minarc ?h \<le> - forest_components ?f \<longrightarrow> kruskal_spanning_invariant (?f \<sqinter> - (top * minarc ?h * ?f\<^sup>T\<^sup>\<star>) \<squnion> (?f \<sqinter> top * minarc ?h * ?f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc ?h) ?g (?h \<sqinter> - minarc ?h \<sqinter> - minarc ?h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - ?h \<and> x \<le> - minarc ?h \<and> x \<le> - minarc ?h\<^sup>T} < card {x. regular x \<and> x \<le> - - ?h}) \<and> (\<not> minarc ?h \<le> - forest_components ?f \<longrightarrow> kruskal_spanning_invariant ?f ?g (?h \<sqinter> - minarc ?h \<sqinter> - minarc ?h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - ?h \<and> x \<le> - minarc ?h \<and> x \<le> - minarc ?h\<^sup>T} < card {x. regular x \<and> x \<le> - - ?h})
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)

goal (1 subgoal):
 1. kruskal_spanning_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
kruskal_spanning_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T)

goal (2 subgoals):
 1. \<exists>w. minimum_spanning_forest w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> w \<squnion> w\<^sup>T
 2. card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<exists>w. minimum_spanning_forest w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> w \<squnion> w\<^sup>T
 2. card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
show "\<exists>w . minimum_spanning_forest w g \<and> ?f \<le> w \<squnion> w\<^sup>T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>w. minimum_spanning_forest w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> w \<squnion> w\<^sup>T
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
let ?p = "w \<sqinter> top * ?e * w\<^sup>T\<^sup>\<star>"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
let ?v = "(w \<sqinter> -(top * ?e * w\<^sup>T\<^sup>\<star>)) \<squnion> ?p\<^sup>T"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 7: "regular ?p"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)
[PROOF STEP]
using 3 regular_closed_star regular_conv_closed regular_mult_closed
[PROOF STATE]
proof (prove)
using this:
regular f \<and> regular w \<and> regular (minarc h)
regular ?x \<Longrightarrow> regular (?x\<^sup>\<star>)
regular ?x \<Longrightarrow> regular (?x\<^sup>T)
\<lbrakk>regular ?x; regular ?y\<rbrakk> \<Longrightarrow> regular (?x * ?y)

goal (1 subgoal):
 1. regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 8: "injective ?v"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
apply (rule kruskal_exchange_injective_inv_1)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. injective w
 2. covector (top * minarc h * w\<^sup>T\<^sup>\<star>)
 3. top * minarc h * w\<^sup>T\<^sup>\<star> * w\<^sup>T \<le> top * minarc h * w\<^sup>T\<^sup>\<star>
 4. coreflexive ((top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T * (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> w\<^sup>T * w)
[PROOF STEP]
using 2 minimum_spanning_forest_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (4 subgoals):
 1. injective w
 2. covector (top * minarc h * w\<^sup>T\<^sup>\<star>)
 3. top * minarc h * w\<^sup>T\<^sup>\<star> * w\<^sup>T \<le> top * minarc h * w\<^sup>T\<^sup>\<star>
 4. coreflexive ((top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T * (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> w\<^sup>T * w)
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. covector (top * minarc h * w\<^sup>T\<^sup>\<star>)
 2. top * minarc h * w\<^sup>T\<^sup>\<star> * w\<^sup>T \<le> top * minarc h * w\<^sup>T\<^sup>\<star>
 3. coreflexive ((top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T * (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> w\<^sup>T * w)
[PROOF STEP]
apply (simp add: covector_mult_closed)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. top * minarc h * w\<^sup>T\<^sup>\<star> * w\<^sup>T \<le> top * minarc h * w\<^sup>T\<^sup>\<star>
 2. coreflexive ((top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T * (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> w\<^sup>T * w)
[PROOF STEP]
apply (simp add: comp_associative comp_isotone star.right_plus_below_circ)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. coreflexive ((top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T * (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> w\<^sup>T * w)
[PROOF STEP]
using 1 2 kruskal_injective_inv_3 minarc_arc minimum_spanning_forest_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
\<lbrakk>arc ?e; forest ?f\<rbrakk> \<Longrightarrow> coreflexive ((top * ?e * ?f\<^sup>T\<^sup>\<star>)\<^sup>T * (top * ?e * ?f\<^sup>T\<^sup>\<star>) \<sqinter> ?f\<^sup>T * ?f)
?x \<noteq> bot \<longrightarrow> arc (minarc ?x)
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. coreflexive ((top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T * (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> w\<^sup>T * w)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 9: "components g \<le> forest_components ?v"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
apply (rule kruskal_exchange_spanning_inv_1)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)
 3. components g \<le> forest_components w
[PROOF STEP]
using 8
[PROOF STATE]
proof (prove)
using this:
injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (3 subgoals):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)
 3. components g \<le> forest_components w
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)
 2. components g \<le> forest_components w
[PROOF STEP]
using 7
[PROOF STATE]
proof (prove)
using this:
regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)

goal (2 subgoals):
 1. regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)
 2. components g \<le> forest_components w
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. components g \<le> forest_components w
[PROOF STEP]
using 2 minimum_spanning_forest_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. components g \<le> forest_components w
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 10: "spanning_forest ?v g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. spanning_forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) g
[PROOF STEP]
proof (unfold spanning_forest_def, intro conjI)
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. pd_kleene_allegory_class.acyclic (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
 4. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 5. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
show "injective ?v"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
using 8
[PROOF STATE]
proof (prove)
using this:
injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (1 subgoal):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (4 subgoals):
 1. pd_kleene_allegory_class.acyclic (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
 3. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 4. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. pd_kleene_allegory_class.acyclic (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
 3. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 4. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
show "acyclic ?v"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. pd_kleene_allegory_class.acyclic (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
apply (rule kruskal_exchange_acyclic_inv_1)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. pd_kleene_allegory_class.acyclic w
 2. covector (top * minarc h * w\<^sup>T\<^sup>\<star>)
[PROOF STEP]
using 2 minimum_spanning_forest_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (2 subgoals):
 1. pd_kleene_allegory_class.acyclic w
 2. covector (top * minarc h * w\<^sup>T\<^sup>\<star>)
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. covector (top * minarc h * w\<^sup>T\<^sup>\<star>)
[PROOF STEP]
by (simp add: covector_mult_closed)
[PROOF STATE]
proof (state)
this:
pd_kleene_allegory_class.acyclic (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (3 subgoals):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
 2. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
 2. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
show "?v \<le> --g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
[PROOF STEP]
apply (rule sup_least)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<le> - - g
 2. (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
[PROOF STEP]
using 2 inf.coboundedI1 minimum_spanning_forest_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
?a \<le> ?c \<Longrightarrow> ?a \<sqinter> ?b \<le> ?c
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (2 subgoals):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<le> - - g
 2. (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
[PROOF STEP]
using 1 2
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g
[PROOF STEP]
by (metis kruskal_invariant_def kruskal_spanning_invariant_def conv_complement conv_dist_inf order.trans inf.absorb2 inf.cobounded1 minimum_spanning_forest_def spanning_forest_def)
[PROOF STATE]
proof (state)
this:
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<le> - - g

goal (2 subgoals):
 1. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
show "components g \<le> forest_components ?v"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
using 9
[PROOF STATE]
proof (prove)
using this:
components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (1 subgoal):
 1. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (1 subgoal):
 1. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
show "regular ?v"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
using 3 regular_closed_star regular_conv_closed regular_mult_closed
[PROOF STATE]
proof (prove)
using this:
regular f \<and> regular w \<and> regular (minarc h)
regular ?x \<Longrightarrow> regular (?x\<^sup>\<star>)
regular ?x \<Longrightarrow> regular (?x\<^sup>T)
\<lbrakk>regular ?x; regular ?y\<rbrakk> \<Longrightarrow> regular (?x * ?y)

goal (1 subgoal):
 1. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
spanning_forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) g

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 11: "sum (?v \<sqinter> g) = sum (w \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
have "sum (?v \<sqinter> g) = sum (w \<sqinter> -(top * ?e * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum (?p\<^sup>T \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum ((w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<sqinter> g)
[PROOF STEP]
using 2
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum ((w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<sqinter> g)
[PROOF STEP]
by (metis conv_complement conv_top epm_8 inf_import_p inf_top_right regular_closed_top vector_top_closed minimum_spanning_forest_def spanning_forest_def sum_disjoint)
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum ((w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum ((w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
have "... = sum (w \<sqinter> -(top * ?e * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum (?p \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum ((w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<sqinter> g) = sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> \<sqinter> g)
[PROOF STEP]
using 1 kruskal_invariant_def kruskal_spanning_invariant_def sum_symmetric
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)
kruskal_spanning_invariant ?f ?g ?h \<equiv> symmetric ?g \<and> ?h = ?h\<^sup>T \<and> ?g \<sqinter> - - ?h = ?h \<and> spanning_forest ?f (- ?h \<sqinter> ?g)
?y = ?y\<^sup>T \<Longrightarrow> sum_class.sum (?x\<^sup>T \<sqinter> ?y) = sum_class.sum (?x \<sqinter> ?y)

goal (1 subgoal):
 1. sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum ((w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<sqinter> g) = sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> \<sqinter> g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum ((w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<sqinter> g) = sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum ((w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<sqinter> g) = sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
have "... = sum (((w \<sqinter> -(top * ?e * w\<^sup>T\<^sup>\<star>)) \<squnion> ?p) \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g)
[PROOF STEP]
using inf_commute inf_left_commute sum_disjoint
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y = ?y \<sqinter> ?x
?x \<sqinter> (?y \<sqinter> ?z) = ?y \<sqinter> (?x \<sqinter> ?z)
?x \<sqinter> ?y = bot \<Longrightarrow> sum_class.sum ((?x \<squnion> ?y) \<sqinter> ?z) = sum_class.sum (?x \<sqinter> ?z) + sum_class.sum (?y \<sqinter> ?z)

goal (1 subgoal):
 1. sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) + sum_class.sum (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
have "... = sum (w \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
using 3 7 maddux_3_11_pp
[PROOF STATE]
proof (prove)
using this:
regular f \<and> regular w \<and> regular (minarc h)
regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)
?x \<sqinter> - ?y \<squnion> ?x \<sqinter> - - ?y = ?x

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<sqinter> g) = sum_class.sum (w \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 12: "?v \<squnion> ?v\<^sup>T = w \<squnion> w\<^sup>T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T
[PROOF STEP]
have "?v \<squnion> ?v\<^sup>T = (w \<sqinter> -?p) \<squnion> ?p\<^sup>T \<squnion> (w\<^sup>T \<sqinter> -?p\<^sup>T) \<squnion> ?p"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w\<^sup>T \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>
[PROOF STEP]
using conv_complement conv_dist_inf conv_dist_sup inf_import_p sup_assoc
[PROOF STATE]
proof (prove)
using this:
(- ?x)\<^sup>T = - ?x\<^sup>T
(?x \<sqinter> ?y)\<^sup>T = ?x\<^sup>T \<sqinter> ?y\<^sup>T
(?x \<squnion> ?y)\<^sup>T = ?x\<^sup>T \<squnion> ?y\<^sup>T
?x \<sqinter> - (?x \<sqinter> ?y) = ?x \<sqinter> - ?y
?x \<squnion> ?y \<squnion> ?z = ?x \<squnion> (?y \<squnion> ?z)

goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w\<^sup>T \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w\<^sup>T \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>

goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w\<^sup>T \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>

goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T
[PROOF STEP]
have "... = w \<squnion> w\<^sup>T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w\<^sup>T \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> = w \<squnion> w\<^sup>T
[PROOF STEP]
using 3 7 conv_complement conv_dist_inf inf_import_p maddux_3_11_pp sup_monoid.add_assoc sup_monoid.add_commute
[PROOF STATE]
proof (prove)
using this:
regular f \<and> regular w \<and> regular (minarc h)
regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)
(- ?x)\<^sup>T = - ?x\<^sup>T
(?x \<sqinter> ?y)\<^sup>T = ?x\<^sup>T \<sqinter> ?y\<^sup>T
?x \<sqinter> - (?x \<sqinter> ?y) = ?x \<sqinter> - ?y
?x \<sqinter> - ?y \<squnion> ?x \<sqinter> - - ?y = ?x
?a \<squnion> ?b \<squnion> ?c = ?a \<squnion> (?b \<squnion> ?c)
?a \<squnion> ?b = ?b \<squnion> ?a

goal (1 subgoal):
 1. w \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w\<^sup>T \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> = w \<squnion> w\<^sup>T
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
w \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w\<^sup>T \<sqinter> - (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star> = w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 13: "?v * ?e\<^sup>T = bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
apply (rule kruskal_reroot_edge)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. injective (minarc h\<^sup>T * top)
 2. pd_kleene_allegory_class.acyclic w
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (2 subgoals):
 1. injective (minarc h\<^sup>T * top)
 2. pd_kleene_allegory_class.acyclic w
[PROOF STEP]
apply (simp add: minarc_arc)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. pd_kleene_allegory_class.acyclic w
[PROOF STEP]
using 2 minimum_spanning_forest_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. pd_kleene_allegory_class.acyclic w
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have "?v \<sqinter> ?e \<le> ?v \<sqinter> top * ?e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h
[PROOF STEP]
using inf.sup_right_isotone top_left_mult_increasing
[PROOF STATE]
proof (prove)
using this:
?y \<le> ?x \<Longrightarrow> ?z \<sqinter> ?y \<le> ?z \<sqinter> ?x
?x \<le> top * ?x

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have "... \<le> ?v * (top * ?e)\<^sup>T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * (top * minarc h)\<^sup>T
[PROOF STEP]
using covector_restrict_comp_conv covector_mult_closed vector_top_closed
[PROOF STATE]
proof (prove)
using this:
covector ?x \<Longrightarrow> ?y \<sqinter> ?x \<le> ?y * ?x\<^sup>T
covector ?x \<Longrightarrow> covector (?x * ?y)
surjective top

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * (top * minarc h)\<^sup>T
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * (top * minarc h)\<^sup>T

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * (top * minarc h)\<^sup>T
[PROOF STEP]
have 14: "?v \<sqinter> ?e = bot"
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * (top * minarc h)\<^sup>T

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h = bot
[PROOF STEP]
using 13
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * (top * minarc h)\<^sup>T
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h = bot
[PROOF STEP]
by (metis conv_dist_comp mult_assoc le_bot mult_left_zero)
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h = bot

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
let ?d = "?v \<sqinter> top * ?e\<^sup>T * ?v\<^sup>T\<^sup>\<star> \<sqinter> ?F * ?e\<^sup>T * top \<sqinter> top * ?e * -?F"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
let ?w = "(?v \<sqinter> -?d) \<squnion> ?e"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 15: "regular ?d"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
[PROOF STEP]
using 3 regular_closed_star regular_conv_closed regular_mult_closed
[PROOF STATE]
proof (prove)
using this:
regular f \<and> regular w \<and> regular (minarc h)
regular ?x \<Longrightarrow> regular (?x\<^sup>\<star>)
regular ?x \<Longrightarrow> regular (?x\<^sup>T)
\<lbrakk>regular ?x; regular ?y\<rbrakk> \<Longrightarrow> regular (?x * ?y)

goal (1 subgoal):
 1. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 16: "?F \<le> -?d"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. forest_components f \<le> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
[PROOF STEP]
apply (rule kruskal_edge_between_components_1)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. equivalence (forest_components f)
 2. mapping (top * minarc h)
[PROOF STEP]
using 5
[PROOF STATE]
proof (prove)
using this:
equivalence (forest_components f)

goal (2 subgoals):
 1. equivalence (forest_components f)
 2. mapping (top * minarc h)
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. mapping (top * minarc h)
[PROOF STEP]
using 1 conv_dist_comp minarc_arc mult_assoc
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
(?x * ?y)\<^sup>T = ?y\<^sup>T * ?x\<^sup>T
?x \<noteq> bot \<longrightarrow> arc (minarc ?x)
?a * ?b * ?c = ?a * (?b * ?c)

goal (1 subgoal):
 1. mapping (top * minarc h)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
forest_components f \<le> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
have 17: "f \<squnion> f\<^sup>T \<le> (?v \<sqinter> -?d \<sqinter> -?d\<^sup>T) \<squnion> (?v\<^sup>T \<sqinter> -?d \<sqinter> -?d\<^sup>T)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. f \<squnion> f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
[PROOF STEP]
apply (rule kruskal_edge_between_components_2)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. forest_components f \<le> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
 2. injective f
 3. f \<squnion> f\<^sup>T \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T
[PROOF STEP]
using 16
[PROOF STATE]
proof (prove)
using this:
forest_components f \<le> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)

goal (3 subgoals):
 1. forest_components f \<le> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
 2. injective f
 3. f \<squnion> f\<^sup>T \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. injective f
 2. f \<squnion> f\<^sup>T \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T
[PROOF STEP]
using 1 kruskal_invariant_def kruskal_spanning_invariant_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)
kruskal_spanning_invariant ?f ?g ?h \<equiv> symmetric ?g \<and> ?h = ?h\<^sup>T \<and> ?g \<sqinter> - - ?h = ?h \<and> spanning_forest ?f (- ?h \<sqinter> ?g)
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (2 subgoals):
 1. injective f
 2. f \<squnion> f\<^sup>T \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. f \<squnion> f\<^sup>T \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T
[PROOF STEP]
using 2 12
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. f \<squnion> f\<^sup>T \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T
[PROOF STEP]
by (metis conv_dist_sup conv_involutive conv_isotone le_supI sup_commute)
[PROOF STATE]
proof (state)
this:
f \<squnion> f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T

goal (1 subgoal):
 1. minimum_spanning_forest ?w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> ?w \<squnion> ?w\<^sup>T
[PROOF STEP]
show "minimum_spanning_forest ?w g \<and> ?f \<le> ?w \<squnion> ?w\<^sup>T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. minimum_spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
proof (intro conjI)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. minimum_spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
 2. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
have 18: "?e\<^sup>T \<le> ?v\<^sup>\<star>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
apply (rule kruskal_edge_arc_1[where g=g and h=h])
[PROOF STATE]
proof (prove)
goal (5 subgoals):
 1. minarc h \<le> - - h
 2. h \<le> g
 3. symmetric g
 4. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
using minarc_below
[PROOF STATE]
proof (prove)
using this:
minarc ?x \<le> - - ?x

goal (5 subgoals):
 1. minarc h \<le> - - h
 2. h \<le> g
 3. symmetric g
 4. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. h \<le> g
 2. symmetric g
 3. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (4 subgoals):
 1. h \<le> g
 2. symmetric g
 3. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
apply (metis kruskal_invariant_def kruskal_spanning_invariant_def inf_le1)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. symmetric g
 2. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
using 1 kruskal_invariant_def kruskal_spanning_invariant_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)
kruskal_spanning_invariant ?f ?g ?h \<equiv> symmetric ?g \<and> ?h = ?h\<^sup>T \<and> ?g \<sqinter> - - ?h = ?h \<and> spanning_forest ?f (- ?h \<sqinter> ?g)

goal (3 subgoals):
 1. symmetric g
 2. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
using 9
[PROOF STATE]
proof (prove)
using this:
components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (2 subgoals):
 1. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
using 13
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>

goal (2 subgoals):
 1. minimum_spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
 2. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
have 19: "arc ?d"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. arc ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
[PROOF STEP]
apply (rule kruskal_edge_arc)
[PROOF STATE]
proof (prove)
goal (9 subgoals):
 1. equivalence (forest_components f)
 2. forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. arc (minarc h)
 4. regular (forest_components f)
 5. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 6. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 7. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 8. minarc h * forest_components f * minarc h = bot
 9. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
using 5
[PROOF STATE]
proof (prove)
using this:
equivalence (forest_components f)

goal (9 subgoals):
 1. equivalence (forest_components f)
 2. forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. arc (minarc h)
 4. regular (forest_components f)
 5. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 6. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 7. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 8. minarc h * forest_components f * minarc h = bot
 9. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (8 subgoals):
 1. forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. arc (minarc h)
 3. regular (forest_components f)
 4. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 5. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 7. minarc h * forest_components f * minarc h = bot
 8. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
using 10 spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
spanning_forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) g
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (8 subgoals):
 1. forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. arc (minarc h)
 3. regular (forest_components f)
 4. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 5. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 7. minarc h * forest_components f * minarc h = bot
 8. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
apply blast
[PROOF STATE]
proof (prove)
goal (7 subgoals):
 1. arc (minarc h)
 2. regular (forest_components f)
 3. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 4. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 6. minarc h * forest_components f * minarc h = bot
 7. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (7 subgoals):
 1. arc (minarc h)
 2. regular (forest_components f)
 3. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 4. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 6. minarc h * forest_components f * minarc h = bot
 7. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
apply (simp add: minarc_arc)
[PROOF STATE]
proof (prove)
goal (6 subgoals):
 1. regular (forest_components f)
 2. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 3. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 5. minarc h * forest_components f * minarc h = bot
 6. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
using 3
[PROOF STATE]
proof (prove)
using this:
regular f \<and> regular w \<and> regular (minarc h)

goal (6 subgoals):
 1. regular (forest_components f)
 2. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 3. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 5. minarc h * forest_components f * minarc h = bot
 6. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
apply (metis conv_complement pp_dist_star regular_mult_closed)
[PROOF STATE]
proof (prove)
goal (5 subgoals):
 1. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 2. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 4. minarc h * forest_components f * minarc h = bot
 5. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
using 2 8 12
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T = w \<squnion> w\<^sup>T

goal (5 subgoals):
 1. forest_components f \<le> forest_components (forest_components f \<sqinter> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T))
 2. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 4. minarc h * forest_components f * minarc h = bot
 5. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
apply (simp add: kruskal_forest_components_inf)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 3. minarc h * forest_components f * minarc h = bot
 4. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
using 10 spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
spanning_forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) g
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (4 subgoals):
 1. regular (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 3. minarc h * forest_components f * minarc h = bot
 4. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 2. minarc h * forest_components f * minarc h = bot
 3. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
using 13
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
 2. minarc h * forest_components f * minarc h = bot
 3. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. minarc h * forest_components f * minarc h = bot
 2. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
using 6
[PROOF STATE]
proof (prove)
using this:
minarc h * forest_components f * minarc h = bot

goal (2 subgoals):
 1. minarc h * forest_components f * minarc h = bot
 2. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
using 18
[PROOF STATE]
proof (prove)
using this:
minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>

goal (1 subgoal):
 1. minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
arc ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)

goal (2 subgoals):
 1. minimum_spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
 2. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
show "minimum_spanning_forest ?w g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. minimum_spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
[PROOF STEP]
proof (unfold minimum_spanning_forest_def, intro conjI)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
 2. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "(?v \<sqinter> -?d) * ?e\<^sup>T \<le> ?v * ?e\<^sup>T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T
[PROOF STEP]
using inf_le1 mult_left_isotone
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<le> ?x
?x \<le> ?y \<Longrightarrow> ?x * ?z \<le> ?y * ?z

goal (1 subgoal):
 1. ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T

goal (2 subgoals):
 1. spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
 2. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
hence "(?v \<sqinter> -?d) * ?e\<^sup>T = bot"
[PROOF STATE]
proof (prove)
using this:
((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T

goal (1 subgoal):
 1. ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T = bot
[PROOF STEP]
using 13 le_bot
[PROOF STATE]
proof (prove)
using this:
((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot
?a \<le> bot \<Longrightarrow> ?a = bot

goal (1 subgoal):
 1. ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T = bot
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T = bot

goal (2 subgoals):
 1. spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
 2. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
hence 20: "?e * (?v \<sqinter> -?d)\<^sup>T = bot"
[PROOF STATE]
proof (prove)
using this:
((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T = bot

goal (1 subgoal):
 1. minarc h * ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T = bot
[PROOF STEP]
using conv_dist_comp conv_involutive conv_bot
[PROOF STATE]
proof (prove)
using this:
((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)) * minarc h\<^sup>T = bot
(?x * ?y)\<^sup>T = ?y\<^sup>T * ?x\<^sup>T
?x\<^sup>T\<^sup>T = ?x
symmetric bot

goal (1 subgoal):
 1. minarc h * ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T = bot
[PROOF STEP]
by force
[PROOF STATE]
proof (state)
this:
minarc h * ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T = bot

goal (2 subgoals):
 1. spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
 2. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have 21: "injective ?w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
apply (rule injective_sup)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))
 2. coreflexive (minarc h * ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T)
 3. injective (minarc h)
[PROOF STEP]
using 8
[PROOF STATE]
proof (prove)
using this:
injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (3 subgoals):
 1. injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))
 2. coreflexive (minarc h * ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T)
 3. injective (minarc h)
[PROOF STEP]
apply (simp add: injective_inf_closed)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. coreflexive (minarc h * ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T)
 2. injective (minarc h)
[PROOF STEP]
using 20
[PROOF STATE]
proof (prove)
using this:
minarc h * ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T = bot

goal (2 subgoals):
 1. coreflexive (minarc h * ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T)
 2. injective (minarc h)
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. injective (minarc h)
[PROOF STEP]
using 1 arc_injective minarc_arc
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
arc ?x \<Longrightarrow> injective ?x
?x \<noteq> bot \<longrightarrow> arc (minarc ?x)

goal (1 subgoal):
 1. injective (minarc h)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)

goal (2 subgoals):
 1. spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
 2. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
show "spanning_forest ?w g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g
[PROOF STEP]
proof (unfold spanning_forest_def, intro conjI)
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. pd_kleene_allegory_class.acyclic ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 4. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 5. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
show "injective ?w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
using 21
[PROOF STATE]
proof (prove)
using this:
injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)

goal (1 subgoal):
 1. injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)

goal (4 subgoals):
 1. pd_kleene_allegory_class.acyclic ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 3. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 4. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. pd_kleene_allegory_class.acyclic ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 3. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 4. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
show "acyclic ?w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. pd_kleene_allegory_class.acyclic ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
apply (rule kruskal_exchange_acyclic_inv_2)
[PROOF STATE]
proof (prove)
goal (7 subgoals):
 1. pd_kleene_allegory_class.acyclic (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 4. bijective (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T * top)
 5. bijective (minarc h * top)
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 7. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
using 10 spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
spanning_forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) g
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (7 subgoals):
 1. pd_kleene_allegory_class.acyclic (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 4. bijective (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T * top)
 5. bijective (minarc h * top)
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 7. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
apply blast
[PROOF STATE]
proof (prove)
goal (6 subgoals):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 3. bijective (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T * top)
 4. bijective (minarc h * top)
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
using 8
[PROOF STATE]
proof (prove)
using this:
injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (6 subgoals):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 3. bijective (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T * top)
 4. bijective (minarc h * top)
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (5 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 2. bijective (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T * top)
 3. bijective (minarc h * top)
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
using inf.coboundedI1
[PROOF STATE]
proof (prove)
using this:
?a \<le> ?c \<Longrightarrow> ?a \<sqinter> ?b \<le> ?c

goal (5 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 2. bijective (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T * top)
 3. bijective (minarc h * top)
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. bijective (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T * top)
 2. bijective (minarc h * top)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
using 19
[PROOF STATE]
proof (prove)
using this:
arc ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)

goal (4 subgoals):
 1. bijective (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T * top)
 2. bijective (minarc h * top)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. bijective (minarc h * top)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (3 subgoals):
 1. bijective (minarc h * top)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
apply (simp add: minarc_arc)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
using inf.cobounded2 inf.coboundedI1
[PROOF STATE]
proof (prove)
using this:
?a \<sqinter> ?b \<le> ?b
?a \<le> ?c \<Longrightarrow> ?a \<sqinter> ?b \<le> ?c

goal (2 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
using 13
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
pd_kleene_allegory_class.acyclic ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 2. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 2. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
have "?w \<le> ?v \<squnion> ?e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h
[PROOF STEP]
using inf_le1 sup_left_isotone
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y \<le> ?x
?x \<le> ?y \<Longrightarrow> ?x \<squnion> ?z \<le> ?y \<squnion> ?z

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 2. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 2. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
have "... \<le> --g \<squnion> ?e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> - - g \<squnion> minarc h
[PROOF STEP]
using 10 sup_left_isotone spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
spanning_forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) g
?x \<le> ?y \<Longrightarrow> ?x \<squnion> ?z \<le> ?y \<squnion> ?z
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> - - g \<squnion> minarc h
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> - - g \<squnion> minarc h

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 2. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> - - g \<squnion> minarc h

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 2. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
have "... \<le> --g \<squnion> --h"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - - g \<squnion> minarc h \<le> - - g \<squnion> - - h
[PROOF STEP]
by (simp add: le_supI2 minarc_below)
[PROOF STATE]
proof (state)
this:
- - g \<squnion> minarc h \<le> - - g \<squnion> - - h

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 2. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
- - g \<squnion> minarc h \<le> - - g \<squnion> - - h

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 2. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
have "... = --g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - - g \<squnion> - - h = - - g
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (1 subgoal):
 1. - - g \<squnion> - - h = - - g
[PROOF STEP]
by (metis kruskal_invariant_def kruskal_spanning_invariant_def pp_isotone_inf sup.orderE)
[PROOF STATE]
proof (state)
this:
- - g \<squnion> - - h = - - g

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
 2. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 3. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
[PROOF STEP]
show "?w \<le> --g"
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<le> - - g

goal (2 subgoals):
 1. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
have 22: "?d \<le> (?v \<sqinter> -?d)\<^sup>T\<^sup>\<star> * ?e\<^sup>T * top"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
apply (rule kruskal_exchange_spanning_inv_2)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star> * minarc h\<^sup>T = minarc h\<^sup>T
 3. ?f \<squnion> ?f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> forest_components ?f * minarc h\<^sup>T * top
[PROOF STEP]
using 8
[PROOF STATE]
proof (prove)
using this:
injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (4 subgoals):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star> * minarc h\<^sup>T = minarc h\<^sup>T
 3. ?f \<squnion> ?f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> forest_components ?f * minarc h\<^sup>T * top
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star> * minarc h\<^sup>T = minarc h\<^sup>T
 2. ?f \<squnion> ?f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> forest_components ?f * minarc h\<^sup>T * top
[PROOF STEP]
using 13
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot

goal (3 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>\<star> * minarc h\<^sup>T = minarc h\<^sup>T
 2. ?f \<squnion> ?f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> forest_components ?f * minarc h\<^sup>T * top
[PROOF STEP]
apply (metis semiring.mult_not_zero star_absorb star_simulation_right_equal)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. ?f \<squnion> ?f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> forest_components ?f * minarc h\<^sup>T * top
[PROOF STEP]
using 17
[PROOF STATE]
proof (prove)
using this:
f \<squnion> f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T

goal (2 subgoals):
 1. ?f \<squnion> ?f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> forest_components ?f * minarc h\<^sup>T * top
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> forest_components f * minarc h\<^sup>T * top
[PROOF STEP]
by (simp add: inf.coboundedI1)
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top

goal (2 subgoals):
 1. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
have "components g \<le> forest_components ?v"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
using 10 spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
spanning_forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) g
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (2 subgoals):
 1. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
components g \<le> forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (2 subgoals):
 1. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
have "... \<le> forest_components ?w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
apply (rule kruskal_exchange_forest_components_inv)
[PROOF STATE]
proof (prove)
goal (8 subgoals):
 1. injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
 3. minarc h * top * minarc h = minarc h
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
 6. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 7. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 8. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
using 21
[PROOF STATE]
proof (prove)
using this:
injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)

goal (8 subgoals):
 1. injective ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
 3. minarc h * top * minarc h = minarc h
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
 6. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 7. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 8. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (7 subgoals):
 1. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
 2. minarc h * top * minarc h = minarc h
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
 5. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 7. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
using 15
[PROOF STATE]
proof (prove)
using this:
regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)

goal (7 subgoals):
 1. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
 2. minarc h * top * minarc h = minarc h
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
 5. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 7. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (6 subgoals):
 1. minarc h * top * minarc h = minarc h
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
 4. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (6 subgoals):
 1. minarc h * top * minarc h = minarc h
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
 4. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 6. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
apply (simp add: arc_top_arc minarc_arc)
[PROOF STATE]
proof (prove)
goal (5 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star>
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
 3. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 5. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
apply (simp add: inf.coboundedI1)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
 2. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
using 13
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T = bot

goal (4 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) * minarc h\<^sup>T * top = bot
 2. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 4. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
using 8
[PROOF STATE]
proof (prove)
using this:
injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)

goal (3 subgoals):
 1. injective (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 3. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T
 2. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
apply (simp add: le_infI1)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
using 22
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f))\<^sup>T\<^sup>\<star> * minarc h\<^sup>T * top
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
forest_components (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)

goal (2 subgoals):
 1. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
 2. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
show "components g \<le> forest_components ?w"
[PROOF STATE]
proof (prove)
using this:
components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)

goal (1 subgoal):
 1. components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
components g \<le> forest_components ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)

goal (1 subgoal):
 1. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
show "regular ?w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
using 3 7 regular_conv_closed
[PROOF STATE]
proof (prove)
using this:
regular f \<and> regular w \<and> regular (minarc h)
regular (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)
regular ?x \<Longrightarrow> regular (?x\<^sup>T)

goal (1 subgoal):
 1. regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have 23: "?e \<sqinter> g \<noteq> bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. minarc h \<sqinter> g \<noteq> bot
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (1 subgoal):
 1. minarc h \<sqinter> g \<noteq> bot
[PROOF STEP]
by (metis kruskal_invariant_def kruskal_spanning_invariant_def comp_inf.semiring.mult_zero_right inf.sup_monoid.add_assoc inf.sup_monoid.add_commute minarc_bot_iff minarc_meet_bot)
[PROOF STATE]
proof (state)
this:
minarc h \<sqinter> g \<noteq> bot

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "g \<sqinter> -h \<le> (g \<sqinter> -h)\<^sup>\<star>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. g \<sqinter> - h \<le> (g \<sqinter> - h)\<^sup>\<star>
[PROOF STEP]
using star.circ_increasing
[PROOF STATE]
proof (prove)
using this:
?x \<le> ?x\<^sup>\<star>

goal (1 subgoal):
 1. g \<sqinter> - h \<le> (g \<sqinter> - h)\<^sup>\<star>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
g \<sqinter> - h \<le> (g \<sqinter> - h)\<^sup>\<star>

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
g \<sqinter> - h \<le> (g \<sqinter> - h)\<^sup>\<star>

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... \<le> (--(g \<sqinter> -h))\<^sup>\<star>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (g \<sqinter> - h)\<^sup>\<star> \<le> components (g \<sqinter> - h)
[PROOF STEP]
using pp_increasing star_isotone
[PROOF STATE]
proof (prove)
using this:
?x \<le> - - ?x
?x \<le> ?y \<Longrightarrow> ?x\<^sup>\<star> \<le> ?y\<^sup>\<star>

goal (1 subgoal):
 1. (g \<sqinter> - h)\<^sup>\<star> \<le> components (g \<sqinter> - h)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
(g \<sqinter> - h)\<^sup>\<star> \<le> components (g \<sqinter> - h)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
(g \<sqinter> - h)\<^sup>\<star> \<le> components (g \<sqinter> - h)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... \<le> ?F"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. components (g \<sqinter> - h) \<le> forest_components f
[PROOF STEP]
using 1 kruskal_invariant_def kruskal_spanning_invariant_def inf.sup_monoid.add_commute spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)
kruskal_spanning_invariant ?f ?g ?h \<equiv> symmetric ?g \<and> ?h = ?h\<^sup>T \<and> ?g \<sqinter> - - ?h = ?h \<and> spanning_forest ?f (- ?h \<sqinter> ?g)
?a \<sqinter> ?b = ?b \<sqinter> ?a
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. components (g \<sqinter> - h) \<le> forest_components f
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
components (g \<sqinter> - h) \<le> forest_components f

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
g \<sqinter> - h \<le> forest_components f
[PROOF STEP]
have 24: "g \<sqinter> -h \<le> ?F"
[PROOF STATE]
proof (prove)
using this:
g \<sqinter> - h \<le> forest_components f

goal (1 subgoal):
 1. g \<sqinter> - h \<le> forest_components f
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
g \<sqinter> - h \<le> forest_components f

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "?d \<le> --g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - g
[PROOF STEP]
using 10 inf.coboundedI1 spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
spanning_forest (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) g
?a \<le> ?c \<Longrightarrow> ?a \<sqinter> ?b \<le> ?c
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - g
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - g

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
hence "?d \<le> --g \<sqinter> -?F"
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - g

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - g \<sqinter> - forest_components f
[PROOF STEP]
using 16 inf.boundedI p_antitone_iff
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - g
forest_components f \<le> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
\<lbrakk>?a \<le> ?b; ?a \<le> ?c\<rbrakk> \<Longrightarrow> ?a \<le> ?b \<sqinter> ?c
(?x \<le> - ?y) = (?y \<le> - ?x)

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - g \<sqinter> - forest_components f
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - g \<sqinter> - forest_components f

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - g \<sqinter> - forest_components f

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... = --(g \<sqinter> -?F)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - - g \<sqinter> - forest_components f = - - (g \<sqinter> - forest_components f)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
- - g \<sqinter> - forest_components f = - - (g \<sqinter> - forest_components f)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
- - g \<sqinter> - forest_components f = - - (g \<sqinter> - forest_components f)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... \<le> --h"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. - - (g \<sqinter> - forest_components f) \<le> - - h
[PROOF STEP]
using 24 p_shunting_swap pp_isotone
[PROOF STATE]
proof (prove)
using this:
g \<sqinter> - h \<le> forest_components f
(?x \<sqinter> ?y \<le> - ?z) = (?x \<sqinter> ?z \<le> - ?y)
?x \<le> ?y \<Longrightarrow> - - ?x \<le> - - ?y

goal (1 subgoal):
 1. - - (g \<sqinter> - forest_components f) \<le> - - h
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
- - (g \<sqinter> - forest_components f) \<le> - - h

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - h
[PROOF STEP]
have 25: "?d \<le> --h"
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - h

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - h
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - h

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "?d = bot \<longrightarrow> top = bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f = bot \<longrightarrow> top = bot
[PROOF STEP]
using 19
[PROOF STATE]
proof (prove)
using this:
arc ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f = bot \<longrightarrow> top = bot
[PROOF STEP]
by (metis mult_left_zero mult_right_zero)
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f = bot \<longrightarrow> top = bot

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
hence "?d \<noteq> bot"
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f = bot \<longrightarrow> top = bot

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<noteq> bot
[PROOF STEP]
using 1 le_bot
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f = bot \<longrightarrow> top = bot
kruskal_invariant f g h \<and> h \<noteq> bot
?a \<le> bot \<Longrightarrow> ?a = bot

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<noteq> bot
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<noteq> bot

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
hence 26: "?d \<sqinter> h \<noteq> bot"
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<noteq> bot

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h \<noteq> bot
[PROOF STEP]
using 25
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<noteq> bot
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - h

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h \<noteq> bot
[PROOF STEP]
by (metis inf.absorb_iff2 inf_commute pseudo_complement)
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h \<noteq> bot

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "sum (?e \<sqinter> g) = sum (?e \<sqinter> --h \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (minarc h \<sqinter> g) = sum_class.sum (minarc h \<sqinter> - - h \<sqinter> g)
[PROOF STEP]
by (simp add: inf.absorb1 minarc_below)
[PROOF STATE]
proof (state)
this:
sum_class.sum (minarc h \<sqinter> g) = sum_class.sum (minarc h \<sqinter> - - h \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (minarc h \<sqinter> g) = sum_class.sum (minarc h \<sqinter> - - h \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... = sum (?e \<sqinter> h)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (minarc h \<sqinter> - - h \<sqinter> g) = sum_class.sum (minarc h \<sqinter> h)
[PROOF STEP]
using 1
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot

goal (1 subgoal):
 1. sum_class.sum (minarc h \<sqinter> - - h \<sqinter> g) = sum_class.sum (minarc h \<sqinter> h)
[PROOF STEP]
by (metis kruskal_invariant_def kruskal_spanning_invariant_def inf.left_commute inf.sup_monoid.add_commute)
[PROOF STATE]
proof (state)
this:
sum_class.sum (minarc h \<sqinter> - - h \<sqinter> g) = sum_class.sum (minarc h \<sqinter> h)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (minarc h \<sqinter> - - h \<sqinter> g) = sum_class.sum (minarc h \<sqinter> h)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... \<le> sum (?d \<sqinter> h)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (minarc h \<sqinter> h) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h)
[PROOF STEP]
using 19 26 minarc_min
[PROOF STATE]
proof (prove)
using this:
arc ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h \<noteq> bot
arc ?y \<and> ?y \<sqinter> ?x \<noteq> bot \<longrightarrow> sum_class.sum (minarc ?x \<sqinter> ?x) \<le> sum_class.sum (?y \<sqinter> ?x)

goal (1 subgoal):
 1. sum_class.sum (minarc h \<sqinter> h) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum (minarc h \<sqinter> h) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (minarc h \<sqinter> h) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... = sum (?d \<sqinter> (--h \<sqinter> g))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> (- - h \<sqinter> g))
[PROOF STEP]
using 1 kruskal_invariant_def kruskal_spanning_invariant_def inf_commute
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)
kruskal_spanning_invariant ?f ?g ?h \<equiv> symmetric ?g \<and> ?h = ?h\<^sup>T \<and> ?g \<sqinter> - - ?h = ?h \<and> spanning_forest ?f (- ?h \<sqinter> ?g)
?x \<sqinter> ?y = ?y \<sqinter> ?x

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> (- - h \<sqinter> g))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> (- - h \<sqinter> g))

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> h) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> (- - h \<sqinter> g))

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... = sum (?d \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> (- - h \<sqinter> g)) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)
[PROOF STEP]
using 25
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<le> - - h

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> (- - h \<sqinter> g)) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)
[PROOF STEP]
by (simp add: inf.absorb2 inf_assoc inf_commute)
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> (- - h \<sqinter> g)) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
sum_class.sum (minarc h \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)
[PROOF STEP]
have 27: "sum (?e \<sqinter> g) \<le> sum (?d \<sqinter> g)"
[PROOF STATE]
proof (prove)
using this:
sum_class.sum (minarc h \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum (minarc h \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum (minarc h \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "?v \<sqinter> ?e \<sqinter> -?d = bot"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) = bot
[PROOF STEP]
using 14
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h = bot

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) = bot
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) = bot

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
hence "sum (?w \<sqinter> g) = sum (?v \<sqinter> -?d \<sqinter> g) + sum (?e \<sqinter> g)"
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) = bot

goal (1 subgoal):
 1. sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum (minarc h \<sqinter> g)
[PROOF STEP]
using sum_disjoint inf_commute inf_assoc
[PROOF STATE]
proof (prove)
using this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> minarc h \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) = bot
?x \<sqinter> ?y = bot \<Longrightarrow> sum_class.sum ((?x \<squnion> ?y) \<sqinter> ?z) = sum_class.sum (?x \<sqinter> ?z) + sum_class.sum (?y \<sqinter> ?z)
?x \<sqinter> ?y = ?y \<sqinter> ?x
?x \<sqinter> ?y \<sqinter> ?z = ?x \<sqinter> (?y \<sqinter> ?z)

goal (1 subgoal):
 1. sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum (minarc h \<sqinter> g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum (minarc h \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum (minarc h \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... \<le> sum (?v \<sqinter> -?d \<sqinter> g) + sum (?d \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum (minarc h \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)
[PROOF STEP]
using 23 27 sum_plus_right_isotone
[PROOF STATE]
proof (prove)
using this:
minarc h \<sqinter> g \<noteq> bot
sum_class.sum (minarc h \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)
?x \<noteq> bot \<and> sum_class.sum ?x \<le> sum_class.sum ?y \<longrightarrow> sum_class.sum ?z + sum_class.sum ?x \<le> sum_class.sum ?z + sum_class.sum ?y

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum (minarc h \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum (minarc h \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum (minarc h \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... = sum (((?v \<sqinter> -?d) \<squnion> ?d) \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g) = sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)
[PROOF STEP]
using sum_disjoint inf_le2 pseudo_complement
[PROOF STATE]
proof (prove)
using this:
?x \<sqinter> ?y = bot \<Longrightarrow> sum_class.sum ((?x \<squnion> ?y) \<sqinter> ?z) = sum_class.sum (?x \<sqinter> ?z) + sum_class.sum (?y \<sqinter> ?z)
?x \<sqinter> ?y \<le> ?y
(?x \<sqinter> ?y = bot) = (?x \<le> - ?y)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g) = sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g) = sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) + sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f \<sqinter> g) = sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... = sum ((?v \<squnion> ?d) \<sqinter> (-?d \<squnion> ?d) \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> (- ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)
[PROOF STEP]
by (simp add: sup_inf_distrib2)
[PROOF STATE]
proof (state)
this:
sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> (- ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> (- ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... = sum ((?v \<squnion> ?d) \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> (- ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)
[PROOF STEP]
using 15
[PROOF STATE]
proof (prove)
using this:
regular ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)

goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> (- ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)
[PROOF STEP]
by (metis inf_top_right stone)
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> (- ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> (- ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
have "... = sum (?v \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g)
[PROOF STEP]
by (simp add: inf.sup_monoid.add_assoc)
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> g) = sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g)
[PROOF STEP]
have "sum (?w \<sqinter> g) \<le> sum (?v \<sqinter> g)"
[PROOF STATE]
proof (prove)
using this:
sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g)

goal (1 subgoal):
 1. sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
thus "\<forall>u . spanning_forest u g \<longrightarrow> sum (?w \<sqinter> g) \<le> sum (u \<sqinter> g)"
[PROOF STATE]
proof (prove)
using this:
sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g)

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
using 2 11 minimum_spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g)
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
sum_class.sum ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> g) = sum_class.sum (w \<sqinter> g)
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))

goal (1 subgoal):
 1. \<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<forall>u. spanning_forest u g \<longrightarrow> sum_class.sum (((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) \<sqinter> g) \<le> sum_class.sum (u \<sqinter> g)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
minimum_spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
have "?f \<le> f \<squnion> f\<^sup>T \<squnion> ?e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> f \<squnion> f\<^sup>T \<squnion> minarc h
[PROOF STEP]
using conv_dist_inf inf_le1 sup_left_isotone sup_mono
[PROOF STATE]
proof (prove)
using this:
(?x \<sqinter> ?y)\<^sup>T = ?x\<^sup>T \<sqinter> ?y\<^sup>T
?x \<sqinter> ?y \<le> ?x
?x \<le> ?y \<Longrightarrow> ?x \<squnion> ?z \<le> ?y \<squnion> ?z
\<lbrakk>?a \<le> ?c; ?b \<le> ?d\<rbrakk> \<Longrightarrow> ?a \<squnion> ?b \<le> ?c \<squnion> ?d

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> f \<squnion> f\<^sup>T \<squnion> minarc h
[PROOF STEP]
by presburger
[PROOF STATE]
proof (state)
this:
f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> f \<squnion> f\<^sup>T \<squnion> minarc h

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> f \<squnion> f\<^sup>T \<squnion> minarc h

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
have "... \<le> (?v \<sqinter> -?d \<sqinter> -?d\<^sup>T) \<squnion> (?v\<^sup>T \<sqinter> -?d \<sqinter> -?d\<^sup>T) \<squnion> ?e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. f \<squnion> f\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h
[PROOF STEP]
using 17 sup_left_isotone
[PROOF STATE]
proof (prove)
using this:
f \<squnion> f\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
?x \<le> ?y \<Longrightarrow> ?x \<squnion> ?z \<le> ?y \<squnion> ?z

goal (1 subgoal):
 1. f \<squnion> f\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
f \<squnion> f\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
f \<squnion> f\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
have "... \<le> (?v \<sqinter> -?d) \<squnion> (?v\<^sup>T \<sqinter> -?d \<sqinter> -?d\<^sup>T) \<squnion> ?e"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h
[PROOF STEP]
using inf.cobounded1 sup_inf_distrib2
[PROOF STATE]
proof (prove)
using this:
?a \<sqinter> ?b \<le> ?a
?y \<sqinter> ?z \<squnion> ?x = (?y \<squnion> ?x) \<sqinter> (?z \<squnion> ?x)

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h
[PROOF STEP]
by presburger
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
have "... = ?w \<squnion> (?v\<^sup>T \<sqinter> -?d \<sqinter> -?d\<^sup>T)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h = (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
[PROOF STEP]
by (simp add: sup_assoc sup_commute)
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h = (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<squnion> minarc h = (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
have "... \<le> ?w \<squnion> (?v\<^sup>T \<sqinter> -?d\<^sup>T)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
[PROOF STEP]
using inf.sup_right_isotone inf_assoc sup_right_isotone
[PROOF STATE]
proof (prove)
using this:
?y \<le> ?x \<Longrightarrow> ?z \<sqinter> ?y \<le> ?z \<sqinter> ?x
?x \<sqinter> ?y \<sqinter> ?z = ?x \<sqinter> (?y \<sqinter> ?z)
?x \<le> ?y \<Longrightarrow> ?z \<squnion> ?x \<le> ?z \<squnion> ?y

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
have "... \<le> ?w \<squnion> ?w\<^sup>T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
using conv_complement conv_dist_inf conv_dist_sup sup_right_isotone
[PROOF STATE]
proof (prove)
using this:
(- ?x)\<^sup>T = - ?x\<^sup>T
(?x \<sqinter> ?y)\<^sup>T = ?x\<^sup>T \<sqinter> ?y\<^sup>T
(?x \<squnion> ?y)\<^sup>T = ?x\<^sup>T \<squnion> ?y\<^sup>T
?x \<le> ?y \<Longrightarrow> ?z \<squnion> ?x \<le> ?z \<squnion> ?y

goal (1 subgoal):
 1. (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f)\<^sup>T \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
show "?f \<le> ?w \<squnion> ?w\<^sup>T"
[PROOF STATE]
proof (prove)
using this:
f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T

goal (1 subgoal):
 1. f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
minimum_spanning_forest ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h) g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h \<squnion> ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> - ((w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T) \<sqinter> top * minarc h\<^sup>T * (w \<sqinter> - (top * minarc h * w\<^sup>T\<^sup>\<star>) \<squnion> (w \<sqinter> top * minarc h * w\<^sup>T\<^sup>\<star>)\<^sup>T)\<^sup>T\<^sup>\<star> \<sqinter> forest_components f * minarc h\<^sup>T * top \<sqinter> top * minarc h * - forest_components f) \<squnion> minarc h)\<^sup>T

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<exists>w. minimum_spanning_forest w g \<and> f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h \<le> w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
show "?n2 < ?n1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
using 1 kruskal_vc_2 kruskal_invariant_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
\<lbrakk>kruskal_spanning_invariant ?f ?g ?h; ?h \<noteq> bot\<rbrakk> \<Longrightarrow> (minarc ?h \<le> - forest_components ?f \<longrightarrow> kruskal_spanning_invariant (?f \<sqinter> - (top * minarc ?h * ?f\<^sup>T\<^sup>\<star>) \<squnion> (?f \<sqinter> top * minarc ?h * ?f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc ?h) ?g (?h \<sqinter> - minarc ?h \<sqinter> - minarc ?h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - ?h \<and> x \<le> - minarc ?h \<and> x \<le> - minarc ?h\<^sup>T} < card {x. regular x \<and> x \<le> - - ?h}) \<and> (\<not> minarc ?h \<le> - forest_components ?f \<longrightarrow> kruskal_spanning_invariant ?f ?g (?h \<sqinter> - minarc ?h \<sqinter> - minarc ?h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - ?h \<and> x \<le> - minarc ?h \<and> x \<le> - minarc ?h\<^sup>T} < card {x. regular x \<and> x \<le> - - ?h})
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)

goal (1 subgoal):
 1. card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}

goal (1 subgoal):
 1. \<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
show "\<not> ?e \<le> -?F \<longrightarrow> kruskal_invariant f g ?h \<and> ?n2 < ?n1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
using 1 kruskal_vc_2 kruskal_invariant_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g h \<and> h \<noteq> bot
\<lbrakk>kruskal_spanning_invariant ?f ?g ?h; ?h \<noteq> bot\<rbrakk> \<Longrightarrow> (minarc ?h \<le> - forest_components ?f \<longrightarrow> kruskal_spanning_invariant (?f \<sqinter> - (top * minarc ?h * ?f\<^sup>T\<^sup>\<star>) \<squnion> (?f \<sqinter> top * minarc ?h * ?f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc ?h) ?g (?h \<sqinter> - minarc ?h \<sqinter> - minarc ?h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - ?h \<and> x \<le> - minarc ?h \<and> x \<le> - minarc ?h\<^sup>T} < card {x. regular x \<and> x \<le> - - ?h}) \<and> (\<not> minarc ?h \<le> - forest_components ?f \<longrightarrow> kruskal_spanning_invariant ?f ?g (?h \<sqinter> - minarc ?h \<sqinter> - minarc ?h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - ?h \<and> x \<le> - minarc ?h \<and> x \<le> - minarc ?h\<^sup>T} < card {x. regular x \<and> x \<le> - - ?h})
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)

goal (1 subgoal):
 1. \<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant (f \<sqinter> - (top * minarc h * f\<^sup>T\<^sup>\<star>) \<squnion> (f \<sqinter> top * minarc h * f\<^sup>T\<^sup>\<star>)\<^sup>T \<squnion> minarc h) g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h}) \<and> (\<not> minarc h \<le> - forest_components f \<longrightarrow> kruskal_invariant f g (h \<sqinter> - minarc h \<sqinter> - minarc h\<^sup>T) \<and> card {x. regular x \<and> x \<le> - - h \<and> x \<le> - minarc h \<and> x \<le> - minarc h\<^sup>T} < card {x. regular x \<and> x \<le> - - h})

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
assume 28: "kruskal_invariant f g bot"
[PROOF STATE]
proof (state)
this:
kruskal_invariant f g bot

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
hence 29: "spanning_forest f g"
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g bot

goal (1 subgoal):
 1. spanning_forest f g
[PROOF STEP]
using kruskal_invariant_def kruskal_spanning_invariant_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g bot
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)
kruskal_spanning_invariant ?f ?g ?h \<equiv> symmetric ?g \<and> ?h = ?h\<^sup>T \<and> ?g \<sqinter> - - ?h = ?h \<and> spanning_forest ?f (- ?h \<sqinter> ?g)

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

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
from 28
[PROOF STATE]
proof (chain)
picking this:
kruskal_invariant f g bot
[PROOF STEP]
obtain w where 30: "minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T"
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g bot

goal (1 subgoal):
 1. (\<And>w. minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using kruskal_invariant_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g bot
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)

goal (1 subgoal):
 1. (\<And>w. minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
hence "w = w \<sqinter> --g"
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. w = w \<sqinter> - - g
[PROOF STEP]
by (simp add: inf.absorb1 minimum_spanning_forest_def spanning_forest_def)
[PROOF STATE]
proof (state)
this:
w = w \<sqinter> - - g

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
w = w \<sqinter> - - g

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
have "... \<le> w \<sqinter> components g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<sqinter> - - g \<le> w \<sqinter> components g
[PROOF STEP]
by (metis inf.sup_right_isotone star.circ_increasing)
[PROOF STATE]
proof (state)
this:
w \<sqinter> - - g \<le> w \<sqinter> components g

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
w \<sqinter> - - g \<le> w \<sqinter> components g

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
have "... \<le> w \<sqinter> f\<^sup>T\<^sup>\<star> * f\<^sup>\<star>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<sqinter> components g \<le> w \<sqinter> forest_components f
[PROOF STEP]
using 29 spanning_forest_def inf.sup_right_isotone
[PROOF STATE]
proof (prove)
using this:
spanning_forest f g
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f
?y \<le> ?x \<Longrightarrow> ?z \<sqinter> ?y \<le> ?z \<sqinter> ?x

goal (1 subgoal):
 1. w \<sqinter> components g \<le> w \<sqinter> forest_components f
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
w \<sqinter> components g \<le> w \<sqinter> forest_components f

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
w \<sqinter> components g \<le> w \<sqinter> forest_components f

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
have "... \<le> f \<squnion> f\<^sup>T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<sqinter> forest_components f \<le> f \<squnion> f\<^sup>T
[PROOF STEP]
apply (rule cancel_separate_6[where z=w and y="w\<^sup>T"])
[PROOF STATE]
proof (prove)
goal (5 subgoals):
 1. injective w
 2. f\<^sup>T \<le> w\<^sup>T \<squnion> w
 3. f \<le> w\<^sup>T \<squnion> w
 4. injective w
 5. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
using 30 minimum_spanning_forest_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (5 subgoals):
 1. injective w
 2. f\<^sup>T \<le> w\<^sup>T \<squnion> w
 3. f \<le> w\<^sup>T \<squnion> w
 4. injective w
 5. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. f\<^sup>T \<le> w\<^sup>T \<squnion> w
 2. f \<le> w\<^sup>T \<squnion> w
 3. injective w
 4. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
using 30
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (4 subgoals):
 1. f\<^sup>T \<le> w\<^sup>T \<squnion> w
 2. f \<le> w\<^sup>T \<squnion> w
 3. injective w
 4. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
apply (metis conv_dist_inf conv_dist_sup conv_involutive inf.cobounded2 inf.orderE)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. f \<le> w\<^sup>T \<squnion> w
 2. injective w
 3. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
using 30
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (3 subgoals):
 1. f \<le> w\<^sup>T \<squnion> w
 2. injective w
 3. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
apply (simp add: sup_commute)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. injective w
 2. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
using 30 minimum_spanning_forest_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (2 subgoals):
 1. injective w
 2. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
using 30
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. w \<sqinter> w\<^sup>T\<^sup>\<star> = bot
[PROOF STEP]
by (metis acyclic_star_below_complement comp_inf.mult_right_isotone inf_p le_bot minimum_spanning_forest_def spanning_forest_def)
[PROOF STATE]
proof (state)
this:
w \<sqinter> forest_components f \<le> f \<squnion> f\<^sup>T

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
w \<le> f \<squnion> f\<^sup>T
[PROOF STEP]
have 31: "w \<le> f \<squnion> f\<^sup>T"
[PROOF STATE]
proof (prove)
using this:
w \<le> f \<squnion> f\<^sup>T

goal (1 subgoal):
 1. w \<le> f \<squnion> f\<^sup>T
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
w \<le> f \<squnion> f\<^sup>T

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
have "sum (f \<sqinter> g) = sum ((w \<squnion> w\<^sup>T) \<sqinter> (f \<sqinter> g))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (f \<sqinter> g) = sum_class.sum ((w \<squnion> w\<^sup>T) \<sqinter> (f \<sqinter> g))
[PROOF STEP]
using 30
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T

goal (1 subgoal):
 1. sum_class.sum (f \<sqinter> g) = sum_class.sum ((w \<squnion> w\<^sup>T) \<sqinter> (f \<sqinter> g))
[PROOF STEP]
by (metis inf_absorb2 inf.assoc)
[PROOF STATE]
proof (state)
this:
sum_class.sum (f \<sqinter> g) = sum_class.sum ((w \<squnion> w\<^sup>T) \<sqinter> (f \<sqinter> g))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (f \<sqinter> g) = sum_class.sum ((w \<squnion> w\<^sup>T) \<sqinter> (f \<sqinter> g))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
have "... = sum (w \<sqinter> (f \<sqinter> g)) + sum (w\<^sup>T \<sqinter> (f \<sqinter> g))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((w \<squnion> w\<^sup>T) \<sqinter> (f \<sqinter> g)) = sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w\<^sup>T \<sqinter> (f \<sqinter> g))
[PROOF STEP]
using 30 inf.commute acyclic_asymmetric sum_disjoint minimum_spanning_forest_def spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
?a \<sqinter> ?b = ?b \<sqinter> ?a
pd_kleene_allegory_class.acyclic ?w \<Longrightarrow> asymmetric ?w
?x \<sqinter> ?y = bot \<Longrightarrow> sum_class.sum ((?x \<squnion> ?y) \<sqinter> ?z) = sum_class.sum (?x \<sqinter> ?z) + sum_class.sum (?y \<sqinter> ?z)
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. sum_class.sum ((w \<squnion> w\<^sup>T) \<sqinter> (f \<sqinter> g)) = sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w\<^sup>T \<sqinter> (f \<sqinter> g))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<squnion> w\<^sup>T) \<sqinter> (f \<sqinter> g)) = sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w\<^sup>T \<sqinter> (f \<sqinter> g))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum ((w \<squnion> w\<^sup>T) \<sqinter> (f \<sqinter> g)) = sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w\<^sup>T \<sqinter> (f \<sqinter> g))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
have "... = sum (w \<sqinter> (f \<sqinter> g)) + sum (w \<sqinter> (f\<^sup>T \<sqinter> g\<^sup>T))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w\<^sup>T \<sqinter> (f \<sqinter> g)) = sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w \<sqinter> (f\<^sup>T \<sqinter> g\<^sup>T))
[PROOF STEP]
by (metis conv_dist_inf conv_involutive sum_conv)
[PROOF STATE]
proof (state)
this:
sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w\<^sup>T \<sqinter> (f \<sqinter> g)) = sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w \<sqinter> (f\<^sup>T \<sqinter> g\<^sup>T))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w\<^sup>T \<sqinter> (f \<sqinter> g)) = sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w \<sqinter> (f\<^sup>T \<sqinter> g\<^sup>T))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
have "... = sum (f \<sqinter> (w \<sqinter> g)) + sum (f\<^sup>T \<sqinter> (w \<sqinter> g))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w \<sqinter> (f\<^sup>T \<sqinter> g\<^sup>T)) = sum_class.sum (f \<sqinter> (w \<sqinter> g)) + sum_class.sum (f\<^sup>T \<sqinter> (w \<sqinter> g))
[PROOF STEP]
using 28 inf.commute inf.assoc kruskal_invariant_def kruskal_spanning_invariant_def
[PROOF STATE]
proof (prove)
using this:
kruskal_invariant f g bot
?a \<sqinter> ?b = ?b \<sqinter> ?a
?a \<sqinter> ?b \<sqinter> ?c = ?a \<sqinter> (?b \<sqinter> ?c)
kruskal_invariant ?f ?g ?h \<equiv> kruskal_spanning_invariant ?f ?g ?h \<and> (\<exists>w. minimum_spanning_forest w ?g \<and> ?f \<le> w \<squnion> w\<^sup>T)
kruskal_spanning_invariant ?f ?g ?h \<equiv> symmetric ?g \<and> ?h = ?h\<^sup>T \<and> ?g \<sqinter> - - ?h = ?h \<and> spanning_forest ?f (- ?h \<sqinter> ?g)

goal (1 subgoal):
 1. sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w \<sqinter> (f\<^sup>T \<sqinter> g\<^sup>T)) = sum_class.sum (f \<sqinter> (w \<sqinter> g)) + sum_class.sum (f\<^sup>T \<sqinter> (w \<sqinter> g))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w \<sqinter> (f\<^sup>T \<sqinter> g\<^sup>T)) = sum_class.sum (f \<sqinter> (w \<sqinter> g)) + sum_class.sum (f\<^sup>T \<sqinter> (w \<sqinter> g))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (w \<sqinter> (f \<sqinter> g)) + sum_class.sum (w \<sqinter> (f\<^sup>T \<sqinter> g\<^sup>T)) = sum_class.sum (f \<sqinter> (w \<sqinter> g)) + sum_class.sum (f\<^sup>T \<sqinter> (w \<sqinter> g))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
have "... = sum ((f \<squnion> f\<^sup>T) \<sqinter> (w \<sqinter> g))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum (f \<sqinter> (w \<sqinter> g)) + sum_class.sum (f\<^sup>T \<sqinter> (w \<sqinter> g)) = sum_class.sum ((f \<squnion> f\<^sup>T) \<sqinter> (w \<sqinter> g))
[PROOF STEP]
using 29 acyclic_asymmetric inf.sup_monoid.add_commute sum_disjoint spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
spanning_forest f g
pd_kleene_allegory_class.acyclic ?w \<Longrightarrow> asymmetric ?w
?a \<sqinter> ?b = ?b \<sqinter> ?a
?x \<sqinter> ?y = bot \<Longrightarrow> sum_class.sum ((?x \<squnion> ?y) \<sqinter> ?z) = sum_class.sum (?x \<sqinter> ?z) + sum_class.sum (?y \<sqinter> ?z)
spanning_forest ?f ?g \<equiv> forest ?f \<and> ?f \<le> - - ?g \<and> components ?g \<le> forest_components ?f \<and> regular ?f

goal (1 subgoal):
 1. sum_class.sum (f \<sqinter> (w \<sqinter> g)) + sum_class.sum (f\<^sup>T \<sqinter> (w \<sqinter> g)) = sum_class.sum ((f \<squnion> f\<^sup>T) \<sqinter> (w \<sqinter> g))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
sum_class.sum (f \<sqinter> (w \<sqinter> g)) + sum_class.sum (f\<^sup>T \<sqinter> (w \<sqinter> g)) = sum_class.sum ((f \<squnion> f\<^sup>T) \<sqinter> (w \<sqinter> g))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
sum_class.sum (f \<sqinter> (w \<sqinter> g)) + sum_class.sum (f\<^sup>T \<sqinter> (w \<sqinter> g)) = sum_class.sum ((f \<squnion> f\<^sup>T) \<sqinter> (w \<sqinter> g))

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
have "... = sum (w \<sqinter> g)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sum_class.sum ((f \<squnion> f\<^sup>T) \<sqinter> (w \<sqinter> g)) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
using 31
[PROOF STATE]
proof (prove)
using this:
w \<le> f \<squnion> f\<^sup>T

goal (1 subgoal):
 1. sum_class.sum ((f \<squnion> f\<^sup>T) \<sqinter> (w \<sqinter> g)) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
by (metis inf_absorb2 inf.assoc)
[PROOF STATE]
proof (state)
this:
sum_class.sum ((f \<squnion> f\<^sup>T) \<sqinter> (w \<sqinter> g)) = sum_class.sum (w \<sqinter> g)

goal (1 subgoal):
 1. \<And>f. kruskal_invariant f g bot \<Longrightarrow> minimum_spanning_forest f g
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
sum_class.sum (f \<sqinter> g) = sum_class.sum (w \<sqinter> g)
[PROOF STEP]
show "minimum_spanning_forest f g"
[PROOF STATE]
proof (prove)
using this:
sum_class.sum (f \<sqinter> g) = sum_class.sum (w \<sqinter> g)

goal (1 subgoal):
 1. minimum_spanning_forest f g
[PROOF STEP]
using 29 30 minimum_spanning_forest_def
[PROOF STATE]
proof (prove)
using this:
sum_class.sum (f \<sqinter> g) = sum_class.sum (w \<sqinter> g)
spanning_forest f g
minimum_spanning_forest w g \<and> f \<le> w \<squnion> w\<^sup>T
minimum_spanning_forest ?f ?g \<equiv> spanning_forest ?f ?g \<and> (\<forall>u. spanning_forest u ?g \<longrightarrow> sum_class.sum (?f \<sqinter> ?g) \<le> sum_class.sum (u \<sqinter> ?g))

goal (1 subgoal):
 1. minimum_spanning_forest f g
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
minimum_spanning_forest f g

goal:
No subgoals!
[PROOF STEP]
qed