Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Exact expanded first-order arithmetic statement
forall b c d e p k l t. ~(p=0) -> (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((k)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((k)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (c))) /\ exists ff_q_fms_count_summand. (b) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (c)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (c))) /\ exists ff_q_fms_count_decoded. (b) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (c)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) -> (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((l)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((l)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (e))) /\ exists ff_q_fms_count_summand. (d) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (e)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (e))) /\ exists ff_q_fms_count_decoded. (d) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (e)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) -> (exists fms_gap_lt. fms_gap_lt + S (t) = (p)) -> exists ub uc vb vc K L. (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((K)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((K)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (uc))) /\ exists ff_q_fms_count_summand. (ub) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (uc)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (uc))) /\ exists ff_q_fms_count_decoded. (ub) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (uc)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) /\ ((((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((L)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((L)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (vc))) /\ exists ff_q_fms_count_summand. (vb) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (vc)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (vc))) /\ exists ff_q_fms_count_decoded. (vb) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (vc)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) /\ (K+L=k+l /\ (((forall cd_output_dyson_upper. (exists fms_gap_cd_dyson_upper_bound. fms_gap_cd_dyson_upper_bound + S (cd_output_dyson_upper) = (p)) -> ((((((exists fs_h_cd_dyson_upper_result. fs_h_cd_dyson_upper_result + S (1) = S ((S (cd_output_dyson_upper)) * uc)) /\ exists fs_q_cd_dyson_upper_result. ub = fs_q_cd_dyson_upper_result * S ((S (cd_output_dyson_upper)) * uc) + (1))) -> ((((exists fs_h_cd_dyson_upper_old. fs_h_cd_dyson_upper_old + S (1) = S ((S (cd_output_dyson_upper)) * c)) /\ exists fs_q_cd_dyson_upper_old. b = fs_q_cd_dyson_upper_old * S ((S (cd_output_dyson_upper)) * c) + (1))) \/ (exists cd_source_dyson_upper. (((exists fms_gap_cd_dyson_upper_member. fms_gap_cd_dyson_upper_member + S (cd_source_dyson_upper) = (p)) /\ (((exists fs_h_fms_cd_dyson_upper_member. fs_h_fms_cd_dyson_upper_member + S (1) = S ((S (cd_source_dyson_upper)) * e)) /\ exists fs_q_fms_cd_dyson_upper_member. d = fs_q_fms_cd_dyson_upper_member * S ((S (cd_source_dyson_upper)) * e) + (1))))) /\ (exists fms_u_cd_dyson_upper_mod fms_v_cd_dyson_upper_mod. (cd_source_dyson_upper+t) + (p) * fms_u_cd_dyson_upper_mod = (cd_output_dyson_upper) + (p) * fms_v_cd_dyson_upper_mod)))) /\ (((((exists fs_h_cd_dyson_upper_old. fs_h_cd_dyson_upper_old + S (1) = S ((S (cd_output_dyson_upper)) * c)) /\ exists fs_q_cd_dyson_upper_old. b = fs_q_cd_dyson_upper_old * S ((S (cd_output_dyson_upper)) * c) + (1))) \/ (exists cd_source_dyson_upper. (((exists fms_gap_cd_dyson_upper_member. fms_gap_cd_dyson_upper_member + S (cd_source_dyson_upper) = (p)) /\ (((exists fs_h_fms_cd_dyson_upper_member. fs_h_fms_cd_dyson_upper_member + S (1) = S ((S (cd_source_dyson_upper)) * e)) /\ exists fs_q_fms_cd_dyson_upper_member. d = fs_q_fms_cd_dyson_upper_member * S ((S (cd_source_dyson_upper)) * e) + (1))))) /\ (exists fms_u_cd_dyson_upper_mod fms_v_cd_dyson_upper_mod. (cd_source_dyson_upper+t) + (p) * fms_u_cd_dyson_upper_mod = (cd_output_dyson_upper) + (p) * fms_v_cd_dyson_upper_mod))) -> (((exists fs_h_cd_dyson_upper_result. fs_h_cd_dyson_upper_result + S (1) = S ((S (cd_output_dyson_upper)) * uc)) /\ exists fs_q_cd_dyson_upper_result. ub = fs_q_cd_dyson_upper_result * S ((S (cd_output_dyson_upper)) * uc) + (1))))))) /\ (forall cd_output_dyson_lower. (exists fms_gap_cd_dyson_lower_bound. fms_gap_cd_dyson_lower_bound + S (cd_output_dyson_lower) = (p)) -> ((((((exists fs_h_cd_dyson_lower_result. fs_h_cd_dyson_lower_result + S (1) = S ((S (cd_output_dyson_lower)) * vc)) /\ exists fs_q_cd_dyson_lower_result. vb = fs_q_cd_dyson_lower_result * S ((S (cd_output_dyson_lower)) * vc) + (1))) -> ((((exists fs_h_cd_dyson_lower_old. fs_h_cd_dyson_lower_old + S (1) = S ((S (cd_output_dyson_lower)) * e)) /\ exists fs_q_cd_dyson_lower_old. d = fs_q_cd_dyson_lower_old * S ((S (cd_output_dyson_lower)) * e) + (1))) /\ (exists cd_source_dyson_lower. (((exists fms_gap_cd_dyson_lower_member. fms_gap_cd_dyson_lower_member + S (cd_source_dyson_lower) = (p)) /\ (((exists fs_h_fms_cd_dyson_lower_member. fs_h_fms_cd_dyson_lower_member + S (1) = S ((S (cd_source_dyson_lower)) * c)) /\ exists fs_q_fms_cd_dyson_lower_member. b = fs_q_fms_cd_dyson_lower_member * S ((S (cd_source_dyson_lower)) * c) + (1))))) /\ (exists fms_u_cd_dyson_lower_mod fms_v_cd_dyson_lower_mod. (cd_output_dyson_lower+t) + (p) * fms_u_cd_dyson_lower_mod = (cd_source_dyson_lower) + (p) * fms_v_cd_dyson_lower_mod)))) /\ (((((exists fs_h_cd_dyson_lower_old. fs_h_cd_dyson_lower_old + S (1) = S ((S (cd_output_dyson_lower)) * e)) /\ exists fs_q_cd_dyson_lower_old. d = fs_q_cd_dyson_lower_old * S ((S (cd_output_dyson_lower)) * e) + (1))) /\ (exists cd_source_dyson_lower. (((exists fms_gap_cd_dyson_lower_member. fms_gap_cd_dyson_lower_member + S (cd_source_dyson_lower) = (p)) /\ (((exists fs_h_fms_cd_dyson_lower_member. fs_h_fms_cd_dyson_lower_member + S (1) = S ((S (cd_source_dyson_lower)) * c)) /\ exists fs_q_fms_cd_dyson_lower_member. b = fs_q_fms_cd_dyson_lower_member * S ((S (cd_source_dyson_lower)) * c) + (1))))) /\ (exists fms_u_cd_dyson_lower_mod fms_v_cd_dyson_lower_mod. (cd_output_dyson_lower+t) + (p) * fms_u_cd_dyson_lower_mod = (cd_source_dyson_lower) + (p) * fms_v_cd_dyson_lower_mod))) -> (((exists fs_h_cd_dyson_lower_result. fs_h_cd_dyson_lower_result + S (1) = S ((S (cd_output_dyson_lower)) * vc)) /\ exists fs_q_cd_dyson_lower_result. vb = fs_q_cd_dyson_lower_result * S ((S (cd_output_dyson_lower)) * vc) + (1)))))))))))Constructive proof overview
Generated structural guide
Construct both actual Dyson-transform sets and their exact cardinalities, preserving the sum of the two input sizes.
The unchanged tactic script uses 7 declared prerequisites and contains 139 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
CD0025 finite_modular_additive_complement CD0022 finite_modular_set_pullback_exists CD0016 finite_bit_union_exists CD0012 finite_bit_intersection_exists CD001B finite_bit_union_intersection_count_balance CD0036 finite_modular_dyson_upper_from_union CD0037 finite_modular_dyson_lower_from_pullbackDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (7)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish hcompL13–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular additive complement.
04Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases hcomp
05Establish hTL19–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular set pullback exists.
- L19
have hT : ∃ tb. ∃ tc. BitCount(tb,tc,p,l) ∧ ModularSetPullback(d,e,tb,tc,p,x)Definitions: ModularSetPullbackBitCount - L20
specialize finite_modular_set_pullback_exists d - L21
specialize finite_modular_set_pullback_exists e - L22
specialize finite_modular_set_pullback_exists p - L23
specialize finite_modular_set_pullback_exists l - L24
specialize finite_modular_set_pullback_exists x - L25
apply finite_modular_set_pullback_exists - L26
exact hp - L27
exact hB
06Separate the logical casesL28–30
07Establish hUL31–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite bit union exists.
- L31
have hU : ∃ ub. ∃ uc. ∃ K. BitCount(ub,uc,p,K) ∧ ModularSetUnion(b,c,x1,x2,ub,uc,p)Definitions: ModularSetUnionBitCount - L32
specialize finite_bit_union_exists b - L33
specialize finite_bit_union_exists c - L34
specialize finite_bit_union_exists x1 - L35
specialize finite_bit_union_exists x2 - L36
specialize finite_bit_union_exists p - L37
specialize finite_bit_union_exists k - L38
specialize finite_bit_union_exists l - L39
apply finite_bit_union_exists - L40
exact hA
08Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hT_witness_witness_left
09Separate the logical casesL42–45
10Establish hIL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite bit intersection exists.
- L46
have hI : ∃ ib. ∃ ic. ∃ L. BitCount(ib,ic,p,L) ∧ ModularSetIntersection(b,c,x1,x2,ib,ic,p)Definitions: ModularSetIntersectionBitCount - L47
specialize finite_bit_intersection_exists b - L48
specialize finite_bit_intersection_exists c - L49
specialize finite_bit_intersection_exists x1 - L50
specialize finite_bit_intersection_exists x2 - L51
specialize finite_bit_intersection_exists p - L52
specialize finite_bit_intersection_exists k - L53
specialize finite_bit_intersection_exists l - L54
apply finite_bit_intersection_exists - L55
exact hA
11Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact hT_witness_witness_left
12Separate the logical casesL57–60
13Establish hVL61–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular set pullback exists.
- L61
have hV : ∃ vb. ∃ vc. BitCount(vb,vc,p,x8) ∧ ModularSetPullback(x6,x7,vb,vc,p,t)Definitions: ModularSetPullbackBitCount - L62
specialize finite_modular_set_pullback_exists x6 - L63
specialize finite_modular_set_pullback_exists x7 - L64
specialize finite_modular_set_pullback_exists p - L65
specialize finite_modular_set_pullback_exists x8 - L66
specialize finite_modular_set_pullback_exists t - L67
apply finite_modular_set_pullback_exists - L68
exact hp - L69
exact hI_witness_witness_witness_left
14Separate the logical casesL70–72
15Construct an explicit witnessL73–78
16Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
split
17Use earlier factsL80–80
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L80
exact hU_witness_witness_witness_left
18Separate the logical casesL81–81
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L81
split
19Use earlier factsL82–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
exact hV_witness_witness_left
20Separate the logical casesL83–83
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L83
split
21Use earlier factsL84–93
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L84
specialize finite_bit_union_intersection_count_balance b - L85
specialize finite_bit_union_intersection_count_balance c - L86
specialize finite_bit_union_intersection_count_balance x1 - L87
specialize finite_bit_union_intersection_count_balance x2 - L88
specialize finite_bit_union_intersection_count_balance x3 - L89
specialize finite_bit_union_intersection_count_balance x4 - L90
specialize finite_bit_union_intersection_count_balance x6 - L91
specialize finite_bit_union_intersection_count_balance x7 - L92
specialize finite_bit_union_intersection_count_balance p - L93
specialize finite_bit_union_intersection_count_balance k
22Use earlier factsL94–103
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L94
specialize finite_bit_union_intersection_count_balance l - L95
specialize finite_bit_union_intersection_count_balance x5 - L96
specialize finite_bit_union_intersection_count_balance x8 - L97
apply finite_bit_union_intersection_count_balance - L98
exact hA - L99
exact hT_witness_witness_left - L100
exact hU_witness_witness_witness_left - L101
exact hI_witness_witness_witness_left - L102
exact hU_witness_witness_witness_right - L103
exact hI_witness_witness_witness_right
23Separate the logical casesL104–104
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L104
split
24Use earlier factsL105–114
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L105
specialize finite_modular_dyson_upper_from_union b - L106
specialize finite_modular_dyson_upper_from_union c - L107
specialize finite_modular_dyson_upper_from_union d - L108
specialize finite_modular_dyson_upper_from_union e - L109
specialize finite_modular_dyson_upper_from_union x1 - L110
specialize finite_modular_dyson_upper_from_union x2 - L111
specialize finite_modular_dyson_upper_from_union x3 - L112
specialize finite_modular_dyson_upper_from_union x4 - L113
specialize finite_modular_dyson_upper_from_union p - L114
specialize finite_modular_dyson_upper_from_union t
25Use earlier factsL115–124
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L115
specialize finite_modular_dyson_upper_from_union x - L116
apply finite_modular_dyson_upper_from_union - L117
exact hp - L118
exact hcomp_witness - L119
exact hT_witness_witness_right - L120
exact hU_witness_witness_witness_right - L121
specialize finite_modular_dyson_lower_from_pullback b - L122
specialize finite_modular_dyson_lower_from_pullback c - L123
specialize finite_modular_dyson_lower_from_pullback d - L124
specialize finite_modular_dyson_lower_from_pullback e
26Use earlier factsL125–134
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L125
specialize finite_modular_dyson_lower_from_pullback x1 - L126
specialize finite_modular_dyson_lower_from_pullback x2 - L127
specialize finite_modular_dyson_lower_from_pullback x6 - L128
specialize finite_modular_dyson_lower_from_pullback x7 - L129
specialize finite_modular_dyson_lower_from_pullback x9 - L130
specialize finite_modular_dyson_lower_from_pullback x10 - L131
specialize finite_modular_dyson_lower_from_pullback p - L132
specialize finite_modular_dyson_lower_from_pullback t - L133
specialize finite_modular_dyson_lower_from_pullback x - L134
apply finite_modular_dyson_lower_from_pullback
Original exact command ledger · 139 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro p - 0006
intro k - 0007
intro l - 0008
intro t - 0009
intro hp - 0010
intro hA - 0011
intro hB - 0012
intro ht - 0013
have hcomp : exists v. t+v=p - 0014
specialize finite_modular_additive_complement p - 0015
specialize finite_modular_additive_complement t - 0016
apply finite_modular_additive_complement - 0017
exact ht - 0018
cases hcomp - 0019
have hT : exists tb tc. (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((l)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((l)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (tc))) /\ exists ff_q_fms_count_summand. (tb) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (tc)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (tc))) /\ exists ff_q_fms_count_decoded. (tb) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (tc)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) /\ (forall fms_i_pullback fms_j_pullback. (exists fms_gap_pullback_i. fms_gap_pullback_i + S (fms_i_pullback) = (p)) -> (exists fms_gap_pullback_j. fms_gap_pullback_j + S (fms_j_pullback) = (p)) -> (exists fms_u_pullback fms_v_pullback. (fms_i_pullback + x) + (p) * fms_u_pullback = (fms_j_pullback) + (p) * fms_v_pullback) -> ((((((exists fs_h_fms_pullback_target. fs_h_fms_pullback_target + S (1) = S ((S (fms_i_pullback)) * tc)) /\ exists fs_q_fms_pullback_target. tb = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * tc) + (1))) -> (((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (1) = S ((S (fms_j_pullback)) * e)) /\ exists fs_q_fms_pullback_source. d = fs_q_fms_pullback_source * S ((S (fms_j_pullback)) * e) + (1)))) /\ ((((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (1) = S ((S (fms_j_pullback)) * e)) /\ exists fs_q_fms_pullback_source. d = fs_q_fms_pullback_source * S ((S (fms_j_pullback)) * e) + (1))) -> (((exists fs_h_fms_pullback_target. fs_h_fms_pullback_target + S (1) = S ((S (fms_i_pullback)) * tc)) /\ exists fs_q_fms_pullback_target. tb = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * tc) + (1))))))) - 0020
specialize finite_modular_set_pullback_exists d - 0021
specialize finite_modular_set_pullback_exists e - 0022
specialize finite_modular_set_pullback_exists p - 0023
specialize finite_modular_set_pullback_exists l - 0024
specialize finite_modular_set_pullback_exists x - 0025
apply finite_modular_set_pullback_exists - 0026
exact hp - 0027
exact hB - 0028
cases hT - 0029
cases hT_witness - 0030
cases hT_witness_witness - 0031
have hU : exists ub uc K. (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((K)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((K)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (uc))) /\ exists ff_q_fms_count_summand. (ub) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (uc)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (uc))) /\ exists ff_q_fms_count_decoded. (ub) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (uc)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) /\ (forall fms_i_binary. (exists fms_gap_binary. fms_gap_binary + S (fms_i_binary) = (p)) -> ((((((exists fs_h_fms_binary_result. fs_h_fms_binary_result + S (1) = S ((S (fms_i_binary)) * uc)) /\ exists fs_q_fms_binary_result. ub = fs_q_fms_binary_result * S ((S (fms_i_binary)) * uc) + (1))) -> (((((exists fs_h_fms_binary_left. fs_h_fms_binary_left + S (1) = S ((S (fms_i_binary)) * c)) /\ exists fs_q_fms_binary_left. b = fs_q_fms_binary_left * S ((S (fms_i_binary)) * c) + (1))) \/ (((exists fs_h_fms_binary_right. fs_h_fms_binary_right + S (1) = S ((S (fms_i_binary)) * x2)) /\ exists fs_q_fms_binary_right. x1 = fs_q_fms_binary_right * S ((S (fms_i_binary)) * x2) + (1)))))) /\ ((((((exists fs_h_fms_binary_left. fs_h_fms_binary_left + S (1) = S ((S (fms_i_binary)) * c)) /\ exists fs_q_fms_binary_left. b = fs_q_fms_binary_left * S ((S (fms_i_binary)) * c) + (1))) \/ (((exists fs_h_fms_binary_right. fs_h_fms_binary_right + S (1) = S ((S (fms_i_binary)) * x2)) /\ exists fs_q_fms_binary_right. x1 = fs_q_fms_binary_right * S ((S (fms_i_binary)) * x2) + (1))))) -> (((exists fs_h_fms_binary_result. fs_h_fms_binary_result + S (1) = S ((S (fms_i_binary)) * uc)) /\ exists fs_q_fms_binary_result. ub = fs_q_fms_binary_result * S ((S (fms_i_binary)) * uc) + (1))))))) - 0032
specialize finite_bit_union_exists b - 0033
specialize finite_bit_union_exists c - 0034
specialize finite_bit_union_exists x1 - 0035
specialize finite_bit_union_exists x2 - 0036
specialize finite_bit_union_exists p - 0037
specialize finite_bit_union_exists k - 0038
specialize finite_bit_union_exists l - 0039
apply finite_bit_union_exists - 0040
exact hA - 0041
exact hT_witness_witness_left - 0042
cases hU - 0043
cases hU_witness - 0044
cases hU_witness_witness - 0045
cases hU_witness_witness_witness - 0046
have hI : exists ib ic L. (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((L)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((L)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (ic))) /\ exists ff_q_fms_count_summand. (ib) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (ic)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (ic))) /\ exists ff_q_fms_count_decoded. (ib) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (ic)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) /\ (forall fms_i_binary. (exists fms_gap_binary. fms_gap_binary + S (fms_i_binary) = (p)) -> ((((((exists fs_h_fms_binary_result. fs_h_fms_binary_result + S (1) = S ((S (fms_i_binary)) * ic)) /\ exists fs_q_fms_binary_result. ib = fs_q_fms_binary_result * S ((S (fms_i_binary)) * ic) + (1))) -> (((((exists fs_h_fms_binary_left. fs_h_fms_binary_left + S (1) = S ((S (fms_i_binary)) * c)) /\ exists fs_q_fms_binary_left. b = fs_q_fms_binary_left * S ((S (fms_i_binary)) * c) + (1))) /\ (((exists fs_h_fms_binary_right. fs_h_fms_binary_right + S (1) = S ((S (fms_i_binary)) * x2)) /\ exists fs_q_fms_binary_right. x1 = fs_q_fms_binary_right * S ((S (fms_i_binary)) * x2) + (1)))))) /\ ((((((exists fs_h_fms_binary_left. fs_h_fms_binary_left + S (1) = S ((S (fms_i_binary)) * c)) /\ exists fs_q_fms_binary_left. b = fs_q_fms_binary_left * S ((S (fms_i_binary)) * c) + (1))) /\ (((exists fs_h_fms_binary_right. fs_h_fms_binary_right + S (1) = S ((S (fms_i_binary)) * x2)) /\ exists fs_q_fms_binary_right. x1 = fs_q_fms_binary_right * S ((S (fms_i_binary)) * x2) + (1))))) -> (((exists fs_h_fms_binary_result. fs_h_fms_binary_result + S (1) = S ((S (fms_i_binary)) * ic)) /\ exists fs_q_fms_binary_result. ib = fs_q_fms_binary_result * S ((S (fms_i_binary)) * ic) + (1))))))) - 0047
specialize finite_bit_intersection_exists b - 0048
specialize finite_bit_intersection_exists c - 0049
specialize finite_bit_intersection_exists x1 - 0050
specialize finite_bit_intersection_exists x2 - 0051
specialize finite_bit_intersection_exists p - 0052
specialize finite_bit_intersection_exists k - 0053
specialize finite_bit_intersection_exists l - 0054
apply finite_bit_intersection_exists - 0055
exact hA - 0056
exact hT_witness_witness_left - 0057
cases hI - 0058
cases hI_witness - 0059
cases hI_witness_witness - 0060
cases hI_witness_witness_witness - 0061
have hV : exists vb vc. (((exists ff_u_fms_count ff_v_fms_count. ((((exists ff_h_fms_count_start. ff_h_fms_count_start + S (0) = S ((S (0)) * ff_v_fms_count)) /\ exists ff_q_fms_count_start. ff_u_fms_count = ff_q_fms_count_start * S ((S (0)) * ff_v_fms_count) + (0))) /\ ((((exists ff_h_fms_count_terminal. ff_h_fms_count_terminal + S ((x8)) = S ((S ((p))) * ff_v_fms_count)) /\ exists ff_q_fms_count_terminal. ff_u_fms_count = ff_q_fms_count_terminal * S ((S ((p))) * ff_v_fms_count) + ((x8)))) /\ forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_a_fms_count ff_r_fms_count ff_s_fms_count. ((((exists ff_h_fms_count_summand. ff_h_fms_count_summand + S (ff_a_fms_count) = S ((S (ff_i_fms_count)) * (vc))) /\ exists ff_q_fms_count_summand. (vb) = ff_q_fms_count_summand * S ((S (ff_i_fms_count)) * (vc)) + (ff_a_fms_count))) /\ ((((exists ff_h_fms_count_partial. ff_h_fms_count_partial + S (ff_r_fms_count) = S ((S (ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_partial. ff_u_fms_count = ff_q_fms_count_partial * S ((S (ff_i_fms_count)) * ff_v_fms_count) + (ff_r_fms_count))) /\ ((((exists ff_h_fms_count_successor. ff_h_fms_count_successor + S (ff_s_fms_count) = S ((S (S ff_i_fms_count)) * ff_v_fms_count)) /\ exists ff_q_fms_count_successor. ff_u_fms_count = ff_q_fms_count_successor * S ((S (S ff_i_fms_count)) * ff_v_fms_count) + (ff_s_fms_count))) /\ ff_s_fms_count = ff_r_fms_count + ff_a_fms_count)))))) /\ (forall ff_i_fms_count. (exists ff_lt_fms_count_bound. ff_lt_fms_count_bound + S ff_i_fms_count = (p)) -> exists ff_bit_fms_count. ((((exists ff_h_fms_count_decoded. ff_h_fms_count_decoded + S (ff_bit_fms_count) = S ((S (ff_i_fms_count)) * (vc))) /\ exists ff_q_fms_count_decoded. (vb) = ff_q_fms_count_decoded * S ((S (ff_i_fms_count)) * (vc)) + (ff_bit_fms_count))) /\ (ff_bit_fms_count = 0 \/ ff_bit_fms_count = 1))))) /\ (forall fms_i_pullback fms_j_pullback. (exists fms_gap_pullback_i. fms_gap_pullback_i + S (fms_i_pullback) = (p)) -> (exists fms_gap_pullback_j. fms_gap_pullback_j + S (fms_j_pullback) = (p)) -> (exists fms_u_pullback fms_v_pullback. (fms_i_pullback + t) + (p) * fms_u_pullback = (fms_j_pullback) + (p) * fms_v_pullback) -> ((((((exists fs_h_fms_pullback_target. fs_h_fms_pullback_target + S (1) = S ((S (fms_i_pullback)) * vc)) /\ exists fs_q_fms_pullback_target. vb = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * vc) + (1))) -> (((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (1) = S ((S (fms_j_pullback)) * x7)) /\ exists fs_q_fms_pullback_source. x6 = fs_q_fms_pullback_source * S ((S (fms_j_pullback)) * x7) + (1)))) /\ ((((exists fs_h_fms_pullback_source. fs_h_fms_pullback_source + S (1) = S ((S (fms_j_pullback)) * x7)) /\ exists fs_q_fms_pullback_source. x6 = fs_q_fms_pullback_source * S ((S (fms_j_pullback)) * x7) + (1))) -> (((exists fs_h_fms_pullback_target. fs_h_fms_pullback_target + S (1) = S ((S (fms_i_pullback)) * vc)) /\ exists fs_q_fms_pullback_target. vb = fs_q_fms_pullback_target * S ((S (fms_i_pullback)) * vc) + (1))))))) - 0062
specialize finite_modular_set_pullback_exists x6 - 0063
specialize finite_modular_set_pullback_exists x7 - 0064
specialize finite_modular_set_pullback_exists p - 0065
specialize finite_modular_set_pullback_exists x8 - 0066
specialize finite_modular_set_pullback_exists t - 0067
apply finite_modular_set_pullback_exists - 0068
exact hp - 0069
exact hI_witness_witness_witness_left - 0070
cases hV - 0071
cases hV_witness - 0072
cases hV_witness_witness - 0073
exists x3 - 0074
exists x4 - 0075
exists x9 - 0076
exists x10 - 0077
exists x5 - 0078
exists x8 - 0079
split - 0080
exact hU_witness_witness_witness_left - 0081
split - 0082
exact hV_witness_witness_left - 0083
split - 0084
specialize finite_bit_union_intersection_count_balance b - 0085
specialize finite_bit_union_intersection_count_balance c - 0086
specialize finite_bit_union_intersection_count_balance x1 - 0087
specialize finite_bit_union_intersection_count_balance x2 - 0088
specialize finite_bit_union_intersection_count_balance x3 - 0089
specialize finite_bit_union_intersection_count_balance x4 - 0090
specialize finite_bit_union_intersection_count_balance x6 - 0091
specialize finite_bit_union_intersection_count_balance x7 - 0092
specialize finite_bit_union_intersection_count_balance p - 0093
specialize finite_bit_union_intersection_count_balance k - 0094
specialize finite_bit_union_intersection_count_balance l - 0095
specialize finite_bit_union_intersection_count_balance x5 - 0096
specialize finite_bit_union_intersection_count_balance x8 - 0097
apply finite_bit_union_intersection_count_balance - 0098
exact hA - 0099
exact hT_witness_witness_left - 0100
exact hU_witness_witness_witness_left - 0101
exact hI_witness_witness_witness_left - 0102
exact hU_witness_witness_witness_right - 0103
exact hI_witness_witness_witness_right - 0104
split - 0105
specialize finite_modular_dyson_upper_from_union b - 0106
specialize finite_modular_dyson_upper_from_union c - 0107
specialize finite_modular_dyson_upper_from_union d - 0108
specialize finite_modular_dyson_upper_from_union e - 0109
specialize finite_modular_dyson_upper_from_union x1 - 0110
specialize finite_modular_dyson_upper_from_union x2 - 0111
specialize finite_modular_dyson_upper_from_union x3 - 0112
specialize finite_modular_dyson_upper_from_union x4 - 0113
specialize finite_modular_dyson_upper_from_union p - 0114
specialize finite_modular_dyson_upper_from_union t - 0115
specialize finite_modular_dyson_upper_from_union x - 0116
apply finite_modular_dyson_upper_from_union - 0117
exact hp - 0118
exact hcomp_witness - 0119
exact hT_witness_witness_right - 0120
exact hU_witness_witness_witness_right - 0121
specialize finite_modular_dyson_lower_from_pullback b - 0122
specialize finite_modular_dyson_lower_from_pullback c - 0123
specialize finite_modular_dyson_lower_from_pullback d - 0124
specialize finite_modular_dyson_lower_from_pullback e - 0125
specialize finite_modular_dyson_lower_from_pullback x1 - 0126
specialize finite_modular_dyson_lower_from_pullback x2 - 0127
specialize finite_modular_dyson_lower_from_pullback x6 - 0128
specialize finite_modular_dyson_lower_from_pullback x7 - 0129
specialize finite_modular_dyson_lower_from_pullback x9 - 0130
specialize finite_modular_dyson_lower_from_pullback x10 - 0131
specialize finite_modular_dyson_lower_from_pullback p - 0132
specialize finite_modular_dyson_lower_from_pullback t - 0133
specialize finite_modular_dyson_lower_from_pullback x - 0134
apply finite_modular_dyson_lower_from_pullback - 0135
exact hp - 0136
exact hcomp_witness - 0137
exact hT_witness_witness_right - 0138
exact hI_witness_witness_witness_right - 0139
exact hV_witness_witness_right