lemma rot_circle_cube_valid_two_cube: shows"valid_two_cube rot_circle_cube" using valid_cube_valid_swap circle_cube_valid_two_cube d_gt_0 rot_circle_cube_def by force
lemma circle_right_top_edges_neq [simp]: "circle_right_edge ≠ circle_top_edge" proof - have"circle_right_edge = (1, (λr::real. (d / 2, 0::real)))" using circle.circle_right_edge_def circle_axioms by blast thenshow ?thesis using circle.circle_top_edge_def circle_axioms by auto qed
lemma circle_left_bot_edges_neq [simp]: "circle_left_edge ≠ circle_bot_edge" proof - have"circle_bot_edge = (1, λr. (x_coord r * d, - d * circle_y (x_coord r)))" using circle.circle_bot_edge_def circle_axioms by blast thenshow ?thesis by (simp add: circle_left_edge_def) qed
lemma circle_left_top_edges_neq [simp]: "circle_left_edge ≠ circle_top_edge" proof - have"∃r. ((r - 1 / 2) * d, d * sqrt (1 / 4 - (r - 1 / 2) * (r - 1 / 2))) ≠ (- (d / 2), 0)" by (metis circ_left_edge_neq_top) thenhave"(∃r. d * r ≠ - (d / 2)) ∨ (∃r ra. (x_coord (x_coord_inv r) * d, d * circle_y (x_coord (x_coord_inv r))) = (x_coord ra * d, d * circle_y (x_coord ra)) ∧d * circle_y r ≠ 0)" by (metis mult.commute) thenhave"(λr. (x_coord r * d, d * circle_y (x_coord r))) ≠ (λr. (- (d / 2), 0))" by (metis mult.commute prod.simps(1) x_coord_inv_2) thenshow ?thesis by (simp add: circle_left_edge_def circle_top_edge_def) qed
definition circle_polar where "circle_polar t = ((d/2) * cos (2 * pi * t), (d/2) * sin (2 * pi * t))"
lemma circle_polar_smooth: "(circle_polar) C1_differentiable_on {0..1}" proof - have"inj ((*) (2 * pi))" by (auto simp: inj_on_def) thenhave *: "∧x. finite ({0..1} ∩ (*) (2 * pi) -` {x})" by (simp add: finite_vimageI) have"(λt. ((d/2) * cos (2 * pi * t), (d/2) * sin (2 * pi * t))) C1_differentiable_on {0..1}" by (rule * derivative_intros)+ thenshow ?thesis apply (rule eq_smooth_gen) by(simp add: circle_polar_def) qed
abbreviation"custom_arccos ≡ (λx. (if -1 ≤ x ∧ x ≤ 1 then arccos x else (if x < -1 then -x + pi else 1 -x )))"
lemma cont_custom_arccos: assumes"S ⊆ {-1..1}" shows"continuous_on S custom_arccos" proof - have"continuous_on ({-1..1} ∪ {}) custom_arccos" by (auto intro!: continuous_on_cases continuous_intros) with assms show ?thesis using continuous_on_subset by auto qed
lemma custom_arccos_has_deriv: assumes"- 1 < x""x < 1" shows"DERIV custom_arccos x :> inverse (- sqrt (1 - x2))" proof - have x1: "∣x∣2 < 12" by (simp add: abs_less_iff abs_square_less_1 assms) show ?thesis apply (rule DERIV_inverse_function [where f=cos and a="-1"and b=1]) apply (rule x1 derivative_eq_intros | simp add: sin_arccos)+ using assms x1 cont_custom_arccos [of "{-1<..<1}"] apply (auto simp: continuous_on_eq_continuous_at greaterThanLessThan_subseteq_atLeastAtMost_iff) done qed
lemma circle_boundary_reparams: shows rot_circ_left_edge_reparam_polar_circ_split: "reparam (rec_join [(rot_circle_left_edge)]) (rec_join [(subcube (1/4) (1/2) (1, circle_polar)), (subcube (1/2) (3/4) (1, circle_polar))])"
(is ?P1) and circ_top_edge_reparam_polar_circ_split: "reparam (rec_join [(circle_top_edge)]) (rec_join [(subcube 0 (1/4) (1, circle_polar)), (subcube (1/4) (1/2) (1, circle_polar))])"
(is ?P2) and circ_bot_edge_reparam_polar_circ_split: "reparam (rec_join [(circle_bot_edge)]) (rec_join [(subcube (1/2) (3/4) (1, circle_polar)), (subcube (3/4) 1 (1, circle_polar))])"
(is ?P3) and rot_circ_right_edge_reparam_polar_circ_split: "reparam (rec_join [(rot_circle_right_edge)]) (rec_join [(subcube (3/4) 1 (1, circle_polar)), (subcube 0 (1/4) (1, circle_polar))])"
(is ?P4) proof - let ?φ = "((*) (1/pi) ∘ custom_arccos ∘ (λt. 2 * x_coord (1 - t)))" let ?LHS1 = "(λx. (- (d * sqrt (1/4 - x_coord (1 - x) * x_coord (1 - x))), x_coord (1 - x) * d))" let ?RHS1 = "((λx. if x * 2 ≤ 1 then (d * cos (2 * pi * (2 * x/4 + 1/4))/2, d * sin (2 * pi * (2 * x/4 + 1/4))/2) else (d * cos (2 * pi * ((2 * x - 1)/4 + 1/2))/2, d * sin (2 * pi * ((2 * x - 1)/4 + 1/2))/2)) ∘ ?φ)" let ?LHS2 = "λx. ((x_coord (1 - x) * d, d * sqrt (1/4 - x_coord (1 - x) * x_coord (1 - x))))" let ?RHS2 = "((λx. if x * 2 ≤ 1 then (d * cos (2 * x * pi/2)/2, d * sin (2 * x * pi/2)/2) else (d * cos (2 * pi * ((2 * x - 1)/4 + 1/4))/2, d * sin (2 * pi * ((2 * x - 1)/4 + 1/4))/2)) ∘ ?φ)" let ?LHS3 = "λx. (x_coord x * d, - (d * sqrt (1/4 - x_coord x * x_coord x)))" let ?RHS3 = "(λx. if x * 2 ≤ 1 then (d * cos (2 * pi * (2 * x/4 + 1/2))/2, d * sin (2 * pi * (2 * x/4 + 1/2))/2) else (d * cos (2 * pi * ((2 * x - 1)/4 + 3/4))/2, d * sin (2 * pi * ((2 * x - 1)/4 + 3/4))/2))" let ?LHS4 = "λx. (d * sqrt (1/4 - x_coord x * x_coord x), x_coord x * d)" let ?RHS4 = "(λx. if x * 2 ≤ 1 then (d * cos (2 * pi * (2 * x/4 + 3/4))/2, d * sin (2 * pi * (2 * x/4 + 3/4))/2) else (d * cos ((2 * x - 1) * pi/2)/2, d * sin ((2 * x - 1) * pi/2)/2))" have phi_diff: "?φ piecewise_C1_differentiable_on {0..1}" unfolding piecewise_C1_differentiable_on_def proof show"continuous_on {0..1} ?φ" unfolding x_coord_def by (intro continuous_on_compose cont_custom_arccos continuous_intros) auto have"?φ C1_differentiable_on {0..1} - {0,1}" unfolding x_coord_def piecewise_C1_differentiable_on_def C1_differentiable_on_def valid_path_def by (simp | rule has_vector_derivative_pair_within DERIV_image_chain derivative_eq_intros continuous_intros exI ballI conjI
| force simp add: field_simps | sos)+ thenshow"∃s. finite s ∧ ?φ C1_differentiable_on {0..1} - s" by force qed have inj: "inj ?φ" apply (intro comp_inj_on inj_on_cases inj_on_arccos) apply (auto simp add: inj_on_def x_coord_def) using pi_ge_zero apply auto[1] apply (smt arccos) by (smt arccos_lbound) thenhave fin: "∧x. [0 ≤ x; x ≤ 1]==> finite (?φ -` {x})" by (simp add: finite_vimageI) have"?φ ` {0..1} = {0..1}" proof show"?φ ` {0..1} ⊆ {0..1}" by (auto simp add: x_coord_def divide_simps arccos_lbound arccos_bounded) have"arccos (1 - 2 * ((1 - cos (x * pi))/2)) = x * pi"if"0 ≤ x""x ≤ 1"for x using that by (simp add: field_simps arccos_cos) thenshow"{0..1} ⊆ ?φ ` {0..1}" apply (auto simp: x_coord_def o_def image_def) by (rule_tac x="(1 - cos (x * pi))/2"in bexI) auto qed thenhave bij_phi: "bij_betw ?φ {0..1} {0..1}" unfolding bij_betw_def using inj inj_on_subset by blast have phi01: "?φ -` {0..1} ⊆ {0..1}" by (auto simp add: subset_iff x_coord_def divide_simps)
{ fix x::real assume x: "0 ≤ x""x ≤ 1" thenhave i: "- 1 ≤ (2 * x - 1)""(2 * x - 1) ≤ 1"by auto have ii: "cos (pi / 2 + arccos (1 - x * 2)) = -sin (arccos (1 - x * 2))" using minus_sin_cos_eq[symmetric, where ?x = "arccos (1 - x * 2)"] by (auto simp add: add.commute) have"2 * sqrt (x - x * x) = sqrt (4*x - 4*x * x)" by (metis mult.assoc real_sqrt_four real_sqrt_mult right_diff_distrib) alsohave"... = sqrt (1 - (2 * x - 1) * (2 * x - 1))" by (simp add: algebra_simps) finallyhave iii: "2 * sqrt (x - x * x) = cos (arcsin (2 * x - 1)) ∧ 2 * sqrt (x - x * x) = sin (arccos (1 - 2 * x))" using arccos_minus[OF i] unfolding minus_diff_eq sin_pi_minus by (simp add: cos_arcsin i power2_eq_square sin_arccos) thenhave1: "?LHS1 x = ?RHS1 x" using d_gt_0 i x apply (simp add: x_coord_def field_simps) apply (auto simp add: diff_divide_distrib add_divide_distrib right_diff_distrib mult.commute ii) using cos_sin_eq[where ?x = "- arccos (1 - x * 2)"] by (simp add: cos_sin_eq[where ?x = "- arccos (1 - x * 2)"] right_diff_distrib) have2: "?LHS2 x = ?RHS2 x" using x d_gt_0 iii by (auto simp add: x_coord_def diff_divide_distrib algebra_simps) have a: "cos (pi / 2 - arccos (x * 2 - 1)) = cos (pi / 2 - arccos (1 - x * 2))" by (smt arccos_minus arccos_cos2 arccos_lbound cos_arccos cos_ge_minus_one cos_le_one i(1) i(2) pi_def pi_half) have b: "cos (arccos (1 - x * 2) + pi * 3 / 2) = cos ((pi / 2 - arccos (x * 2 - 1)) + 2 * pi)" using arccos_minus[OF i] by(auto simp add: mult.commute add.commute) thenhave c: "... = cos (pi / 2 - arccos (x * 2 - 1))"using cos_periodic by blast have"cos (- pi - arccos (1 - x * 2)) = cos (- (pi + arccos (1 - x * 2)))" by (auto simp add: minus_add[where b = "pi"and a = "arccos (1 - x * 2)", symmetric]) moreoverhave"... = cos ((pi + arccos (1 - x * 2)))" using cos_minus by blast moreoverhave"... = cos (2*pi - arccos (x * 2 - 1))" using arccos_minus[OF i] by (auto simp add: mult.commute add.commute) moreoverhave"... = cos (arccos (x * 2 - 1))" using cos_2pi_minus by auto ultimatelyhave d: "cos (- pi - arccos (1 - x * 2)) = (x * 2 - 1)" using cos_arccos[OF i] mult.commute by metis have cosm: "∧x. cos (x - pi*2) = cos x" by (metis cos_periodic eq_diff_eq' mult.commute) have34: "?LHS3 x = (?RHS3 ∘ ?φ) x""?LHS4 x = (?RHS4 ∘ ?φ) x" using d_gt_0 x a b c iii cos_periodic [of "pi / 2 - arccos (x * 2 - 1)"] apply (auto simp add: x_coord_def algebra_simps diff_divide_distrib power2_eq_square) apply (auto simp add: sin_cos_eq cosm) using d apply (auto simp add: right_diff_distrib) by (smt cos_minus) note1234
} note * = this show ?P1 ?P2 ?P3 ?P4 apply (auto simp add: subcube_def circle_bot_edge_def circle_top_edge_def circle_polar_def reversepath_def
subpath_def joinpaths_def circle_y_def rot_circle_left_edge_def rot_circle_right_edge_def) unfolding reparam_def by (rule ballI exI conjI impI phi_diff bij_phi phi01 fin * | force simp add: x_coord_def)+ qed
definition circle_cube_boundary_to_polarcircle where "circle_cube_boundary_to_polarcircle γ ≡ if (γ = (circle_top_edge)) then {subcube 0 (1/4) (1, circle_polar), subcube (1/4) (1/2) (1, circle_polar)} else if (γ = (circle_bot_edge)) then {subcube (1/2) (3/4) (1, circle_polar), subcube (3/4) 1 (1, circle_polar)} else {}"
definition rot_circle_cube_boundary_to_polarcircle where "rot_circle_cube_boundary_to_polarcircle γ ≡ if (γ = (rot_circle_left_edge )) then {subcube (1/4) (1/2) (1, circle_polar), subcube (1/2) (3/4) (1, circle_polar)} else if (γ = (rot_circle_right_edge)) then {subcube (3/4) 1 (1, circle_polar), subcube 0 (1/4) (1, circle_polar)} else {}"
lemma circle_arcs_neq: assumes"0 ≤ k""k ≤ 1""0 ≤ n""n ≤ 1""n < k""k + n < 1" shows"subcube k m (1, circle_polar) ≠ subcube n q (1, circle_polar)" proof (simp add: subcube_def subpath_def circle_polar_def) have"cos (2 * pi * k) ≠ cos(2 * pi * n)" unfolding cos_eq proof safe show False if"2 * pi * k = 2 * pi * n + 2 * m * pi""m ∈ℤ"for m proof - have"2 * pi * (k - n ) = 2 * m * pi" using distrib_left that by (simp add: left_diff_distrib mult.commute) thenhave a: "m = (k - n)"by auto have"⌊k - n⌋ = 0 " using assms by (simp add: floor_eq_iff) thenhave"k - n ∉ℤ" using assms by (auto simp only: frac_eq_0_iff[symmetric] frac_def) thenshow False using that a by auto qed show False if"2 * pi * k = - (2 * pi * n) + 2 * m * pi""m ∈ℤ"for m proof - have"2 * pi * (k + n ) = 2 * m * pi" using that by (auto simp add: distrib_left) thenhave a: "m = (k + n)"by auto have"⌊k + n⌋ = 0 " using assms by (simp add: floor_eq_iff) thenhave"k + n ∉ℤ" using Ints_def assms by force thenshow False using that a by auto qed qed thenhave"(λx. (d * cos (2 * pi * ((m - k) * x + k))/2, d * sin (2 * pi * ((m - k) * x + k))/2)) 0 ≠ (λx. (d * cos (2 * pi * ((q - n) * x + n))/2, d * sin (2 * pi * ((q - n) * x + n))/2)) 0" using d_gt_0 by auto thenshow"(λx. (d * cos (2 * pi * ((m - k) * x + k))/2, d * sin (2 * pi * ((m - k) * x + k))/2)) ≠ (λx. (d * cos (2 * pi * ((q - n) * x + n))/2, d * sin (2 * pi * ((q - n) * x + n))/2))" by metis qed
lemma circle_arcs_neq_2: assumes"0 ≤ k""k ≤ 1""0 ≤ n""n ≤ 1""n < k""0 < n"and kn12: "1/2 < k + n"and"k + n < 3/2" shows"subcube k m (1, circle_polar) ≠ subcube n q (1, circle_polar)" proof (simp add: subcube_def subpath_def circle_polar_def) have"sin (2 * pi * k) ≠ sin(2 * pi * n)" unfolding sin_eq proof safe show False if"m ∈ℤ""2 * pi * k = 2 * pi * n + 2 * m * pi"for m proof - have"2 * pi * (k - n) = 2 * m * pi" using that by (simp add: left_diff_distrib mult.commute) thenhave a: "m = (k - n)"by auto have"⌊k - n⌋ = 0 " using assms by (simp add: floor_eq_iff) thenhave"k - n ∉ℤ" using assms by (auto simp only: frac_eq_0_iff[symmetric] frac_def ) thenshow False using that a by auto qed show False if"2 * pi * k = - (2 * pi * n) + (2 * m + 1) * pi""m ∈ℤ"for m proof - have i: "∧pi. 0 < pi ==> 2 * pi * (k + n ) = 2 * m * pi + pi ==> m = (k + n) - 1/2" by (sos "(((((A<0 * A<1) * R<1) + ([1/2] * A=0))) & ((((A<0 * A<1) * R<1) + ([~1/2] * A=0))))") have"2 * pi * (k + n) = 2 * m * pi + pi" using that by (simp add: algebra_simps) thenhave a: "m = (k + n) - 1/2"using i[OF pi_gt_zero] by fastforce have"⌊k + n - 1/2⌋ = 0 " using assms by (auto simp add: floor_eq_iff) thenhave"k + n - 1/2 ∉ℤ" by (metis Ints_cases add.commute add.left_neutral add_diff_cancel_left' add_diff_eq kn12 floor_of_int of_int_0 order_less_irrefl) thenshow False using that a by auto qed qed thenhave"(λx. (d * cos (2 * pi * ((m - k) * x + k))/2, d * sin (2 * pi * ((m - k) * x + k))/2)) 0 ≠ (λx. (d * cos (2 * pi * ((q - n) * x + n))/2, d * sin (2 * pi * ((q - n) * x + n))/2)) 0" using d_gt_0 by auto thenshow"(λx. (d * cos (2 * pi * ((m - k) * x + k))/2, d * sin (2 * pi * ((m - k) * x + k))/2)) ≠ (λx. (d * cos (2 * pi * ((q - n) * x + n))/2, d * sin (2 * pi * ((q - n) * x + n))/2))" by metis qed
lemma circle_cube_is_only_horizontal_div_of_rot: shows"only_horizontal_division (boundary (circle_cube)) {rot_circle_cube}" unfolding only_horizontal_division_def proof (rule exI [of _ "{}"], simp, intro conjI ballI) show"finite (boundary circle_cube)" using circle.circle_cube_boundary_explicit circle_axioms by auto show"boundary_chain (boundary circle_cube)" by (simp add: two_cube_boundary_is_boundary) show"∧x. x ∈ boundary circle_cube ==> case x of (k, x) ==> valid_path x" using circle_cube_boundary_valid by blast let ?V = "(boundary (circle_cube))" let ?pi = "{circle_left_edge, circle_right_edge}" let ?pj = "{rot_circle_top_edge, rot_circle_bot_edge}" let ?f = "circle_cube_boundary_to_polarcircle" let ?one_chaini = "boundary (circle_cube) - ?pi" have c: "common_reparam_exists ?V (two_chain_vertical_boundary {rot_circle_cube})" unfolding common_reparam_exists_def proof (intro exI conjI) let ?subdiv = "{(subcube 0 (1/4) (1, circle_polar)), (subcube (1/4) (1/2) (1, circle_polar)), (subcube (1/2) (3/4) (1, circle_polar)), (subcube (3/4) 1 (1, circle_polar))}" show"(∀(k, γ)∈?subdiv. γ C1_differentiable_on {0..1})" using subpath_smooth[OF circle_polar_smooth] by (auto simp add: subcube_def) have1: "finite ?subdiv"by auto show"boundary_chain ?subdiv" by (simp add: boundary_chain_def subcube_def) show"chain_reparam_chain' (boundary (circle_cube) - ?pi) ?subdiv" unfolding chain_reparam_chain'_def proof (intro exI conjI impI) show"∪ (?f ` ?one_chaini) = ?subdiv" apply (simp add: circle_cube_boundary_to_polarcircle_def circle_cube_boundary_explicit) using circle_top_bot_edges_neq' by metis let ?l = "[subcube 0 (1/4) (1, circle_polar), subcube (1/4) (1/2) (1, circle_polar)]" have"chain_reparam_weak_path (coeff_cube_to_path (circle_top_edge)) {subcube 0 (1/4) (1, circle_polar), subcube (1/4) (1/2) (1, circle_polar)}" unfolding chain_reparam_weak_path_def proof (intro exI conjI) show"valid_chain_list ?l" by (auto simp add: subcube_def circle_top_edge_def x_coord_def circle_y_def pathfinish_def pathstart_def
reversepath_def subpath_def joinpaths_def) show"reparam (coeff_cube_to_path circle_top_edge) (rec_join ?l)" using circ_top_edge_reparam_polar_circ_split by auto show"distinct ?l" apply simp apply (subst neq_commute) apply (simp add: circle_arcs_neq) done qed auto moreoverhave"chain_reparam_weak_path (coeff_cube_to_path (circle_bot_edge)) {subcube (1/2) (3/4) (1, circle_polar), subcube (3/4) 1 (1, circle_polar)}" unfolding chain_reparam_weak_path_def proof let ?l = "[subcube (1/2) (3/4) (1, circle_polar), subcube (3/4) 1 (1, circle_polar)]" have a: "valid_chain_list ?l" by (auto simp add: subcube_def circle_top_edge_def x_coord_def circle_y_def pathfinish_def pathstart_def
reversepath_def subpath_def joinpaths_def) have b: "reparam (rec_join [circle_bot_edge]) (rec_join ?l)" using circ_bot_edge_reparam_polar_circ_split by auto have c: "subcube (3/4) 1 (1, circle_polar) ≠ subcube (1/2) (3/4) (1, circle_polar)" apply(rule circle_arcs_neq_2) using d_gt_0(1) by auto show"set ?l = {subcube (1/2) (3/4) (1, circle_polar), subcube (3/4) 1 (1, circle_polar)} ∧ distinct ?l ∧ reparam (coeff_cube_to_path (circle_bot_edge)) (rec_join ?l) ∧ valid_chain_list ?l ∧ ?l ≠ []"using a b c by auto qed ultimately show"(∀cube∈?one_chaini. chain_reparam_weak_path (rec_join [cube]) (?f cube))" by (auto simp add: circle_cube_boundary_to_polarcircle_def UNION_eq circle_cube_boundary_explicit) show"(∀p∈?one_chaini. ∀p'∈?one_chaini. p ≠ p' ⟶ ?f p ∩ ?f p' = {})" using circle_arcs_neq circle_arcs_neq_2 apply (auto simp add: circle_cube_boundary_to_polarcircle_def UNION_eq circle_cube_boundary_explicit neq_commute d_gt_0) using circle_top_bot_edges_neq' d_gt_0 apply auto[1] apply (smt atLeastAtMost_iff divide_less_eq_1_pos zero_less_divide_1_iff) apply (smt atLeastAtMost_iff divide_less_eq_1_pos zero_less_divide_iff) apply (smt atLeastAtMost_iff divide_cancel_left divide_less_eq_1_pos field_sum_of_halves zero_less_divide_1_iff) done show"(∀x∈?one_chaini. finite (?f x))" by (auto simp add: circle_cube_boundary_to_polarcircle_def circle_cube_boundary_explicit) qed show"(∀(k, γ)∈?pi. point_path γ)" using d_gt_0 by (auto simp add: point_path_def circle_left_edge_def circle_right_edge_def) let ?f = "rot_circle_cube_boundary_to_polarcircle" let ?one_chain2.0 = "two_chain_vertical_boundary {rot_circle_cube} - ?pj" show"chain_reparam_chain' (two_chain_vertical_boundary {rot_circle_cube} - ?pj) ?subdiv" unfolding chain_reparam_chain'_def proof (intro exI conjI) have rw: "?one_chain2.0 = {rot_circle_left_edge, rot_circle_right_edge}" by(auto simp add: rot_circle_cube_vertical_boundary_explicit two_chain_vertical_boundary_def) show"∪ (?f ` ?one_chain2.0) = ?subdiv" using rot_circle_right_top_edges_neq' by (auto simp add: rot_circle_cube_boundary_to_polarcircle_def rw) show"(∀cube∈?one_chain2.0. chain_reparam_weak_path (rec_join [cube]) (?f cube))" proof (clarsimp simp add: rot_circle_cube_boundary_to_polarcircle_def rw, intro conjI) let ?l = "[subcube (1/4) (1/2) (1, circle_polar), subcube (1/2) (3/4) (1, circle_polar)]" show"chain_reparam_weak_path (coeff_cube_to_path (rot_circle_left_edge)) {subcube (1/4) (1/2) (1, circle_polar), subcube (1/2) (3/4) (1, circle_polar)}" unfolding chain_reparam_weak_path_def proof (intro exI conjI) show"valid_chain_list ?l" by (auto simp add: subcube_def pathfinish_def pathstart_def reversepath_def subpath_def joinpaths_def) show"reparam (coeff_cube_to_path rot_circle_left_edge) (rec_join ?l)" using rot_circ_left_edge_reparam_polar_circ_split by auto show"distinct ?l" apply simp apply (subst neq_commute) apply (simp add: circle_arcs_neq) done qed auto show"chain_reparam_weak_path (coeff_cube_to_path (rot_circle_right_edge)) {subcube (3/4) 1 (1, circle_polar), subcube 0 (1/4) (1, circle_polar)}" unfolding chain_reparam_weak_path_def proof (intro exI conjI) let ?l = "[subcube (3/4) 1 (1, circle_polar), subcube 0 (1/4) (1, circle_polar)]" show"valid_chain_list ?l" by (auto simp add: circle_polar_def subcube_def pathfinish_def pathstart_def
reversepath_def subpath_def joinpaths_def) show"reparam (coeff_cube_to_path rot_circle_right_edge) (rec_join ?l)" using rot_circ_right_edge_reparam_polar_circ_split by auto show"distinct ?l" by (simp add: circle_arcs_neq) qed auto qed show"(∀p∈?one_chain2.0. ∀p'∈?one_chain2.0. p ≠ p' ⟶ ?f p ∩ ?f p' = {})" using circle_arcs_neq circle_arcs_neq_2 apply (auto simp add: rot_circle_cube_boundary_to_polarcircle_def neq_commute) apply (metis add.right_neutral divide_less_eq_1_pos dual_order.order_iff_strict num.distinct(1) one_less_numeral_iff prod.sel(1) prod.sel(2) semiring_norm(68) subcube_def zero_less_divide_1_iff zero_less_numeral) apply (smt field_sum_of_halves) done show"(∀x∈?one_chain2.0. finite (?f x))" by (auto simp add: rot_circle_cube_boundary_to_polarcircle_def UNION_eq rw) qed show"(∀(k, γ)∈?pj. point_path γ)" using d_gt_0 by (auto simp add: point_path_def rot_circle_top_edge_def rot_circle_bot_edge_def) qed thenshow"common_sudiv_exists (two_chain_vertical_boundary {rot_circle_cube}) (boundary circle_cube) ∨ common_reparam_exists (boundary circle_cube) (two_chain_vertical_boundary {rot_circle_cube})" by blast qed
lemma GreenThm_cirlce: assumes"∀twoC∈{circle_cube}. analytically_valid (cubeImage twoC) (λx. F x ∙ i) j" "∀twoC∈{rot_circle_cube}. analytically_valid (cubeImage twoC) (λx. F x ∙ j) i" shows"integral (cubeImage (circle_cube)) (λx. partial_vector_derivative (λx. F x ∙ j) i x - partial_vector_derivative (λx. F x ∙ i) j x) = one_chain_line_integral F {i, j} (boundary (circle_cube))" proof(rule green_typeI_typeII_chain.GreenThm_typeI_typeII_divisible_region_finite_holes[of "(cubeImage (circle_cube))" i j F "{circle_cube}""{rot_circle_cube}",
OF _ _ _ circle_cube_is_only_horizontal_div_of_rot _], auto) show"∧ a b. (a, b) ∈ boundary circle_cube ==> valid_path b"using circle_cube_boundary_valid by auto show"green_typeI_typeII_chain (cubeImage circle_cube) i j F {circle_cube} {rot_circle_cube}" using assms proof(auto simp add: green_typeI_typeII_chain_def green_typeI_chain_def green_typeII_chain_def green_typeI_chain_axioms_def green_typeII_chain_axioms_def
intro!: circle_cube_is_type_I rot_circle_cube_is_type_II d_gt_0 R2_axioms) show"gen_division (cubeImage circle_cube) {cubeImage circle_cube}"by (simp add: gen_division_def) show"gen_division (cubeImage (circle_cube)) ({cubeImage rot_circle_cube})" using rot_circle_div_circle d_gt_0 by auto show"valid_two_chain {rot_circle_cube}""valid_two_chain {circle_cube}" apply (auto simp add: valid_two_chain_def) using rot_circle_cube_valid_two_cube circle_cube_valid_two_cube assms(1) by auto qed show"only_vertical_division (boundary (circle_cube)) {circle_cube}" using twoChainVertDiv_of_itself[of "{circle_cube}"] apply(simp add: two_chain_boundary_def) using circle_cube_boundary_valid by auto qed end end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.