logo
In [1]:
import proveit
theory = proveit.Theory() # the theorem's theory
from proveit import a, b, e, f, i, l, x, defaults, Lambda
from proveit.logic import Equals, InSet, NotEquals
from proveit.numbers import (
    zero, one, two, four, Add, Exp, frac, greater, greater_eq,
    Less, Mult, NaturalPos, Neg, Real, RealPos, subtract)
from proveit.numbers.functions import MonDecFuncs
from proveit.physics.quantum.QPE import (
    _t_in_natural_pos, _two_pow_t, _two_pow_t_minus_one_is_nat_pos, _phase_is_real,
    _mod_add_def, _b_floor, _best_floor_is_int, _delta_b_floor, _delta_b_is_real, 
    _scaled_delta_b_floor_in_interval, _diff_l_scaled_delta_floor)
from proveit.physics.quantum.QPE.phase_est_ops import Psuccess, Pfail, ModAdd
In [2]:
%proving _failure_upper_bound
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
_failure_upper_bound:
(see dependencies)
In [3]:
defaults.assumptions = _failure_upper_bound.conditions
defaults.assumptions:

(1) Import & Instantiate the _failure_upper_bound_lemma

In [4]:
from proveit.physics.quantum.QPE import _failure_upper_bound_lemma
_failure_upper_bound_lemma
In [5]:
_failure_upper_bound_lemma_inst = (
        _failure_upper_bound_lemma.instantiate(preserve_expr=Neg(Add(e, one))))
_failure_upper_bound_lemma_inst:  ⊢  

(2) Establish some convenient labels for important expressions

In [6]:
first_sum = _failure_upper_bound_lemma_inst.rhs.operands[1].operands[0]
first_sum:
In [7]:
second_sum = _failure_upper_bound_lemma_inst.rhs.operands[1].operands[1]
second_sum:
In [8]:
the_summand = first_sum.summand
the_summand:
In [9]:
first_sum_conditions = first_sum.conditions[0]
first_sum_conditions:
In [10]:
second_sum_conditions = second_sum.conditions[0]
second_sum_conditions:

(3) Some Initial Bounding of the Summand Denominator and variables $\ell$ and $e$

In [11]:
_scaled_delta_b_floor_in_interval
In [12]:
_delta_b_is_real.instantiate({b:_b_floor})
In [13]:
# Automatic incidental derivation, but want to label the result for later use
scaled_delta_lower_bound = _scaled_delta_b_floor_in_interval.derive_element_lower_bound()
scaled_delta_lower_bound:  ⊢  
In [14]:
# Automatic incidental derivation, but want to label the result for later use
scaled_delta_upper_bound = _scaled_delta_b_floor_in_interval.derive_element_upper_bound()
scaled_delta_upper_bound:  ⊢  
In [15]:
neg_scaled_delta_lower_bound = scaled_delta_upper_bound.left_mult_both_sides(Neg(one))
neg_scaled_delta_lower_bound:  ⊢  
In [16]:
neg_scaled_delta_upper_bound = scaled_delta_lower_bound.left_mult_both_sides(Neg(one))
neg_scaled_delta_upper_bound:  ⊢  
In [17]:
_diff_l_scaled_delta_floor.deduce_bound(neg_scaled_delta_lower_bound,
        assumptions=defaults.assumptions + (first_sum_conditions,))
In [18]:
# For the 1st Summation
diff_l_scaled_delta_upper_bound = _diff_l_scaled_delta_floor.deduce_bound(
        neg_scaled_delta_upper_bound.reversed(),
        assumptions=defaults.assumptions + (first_sum_conditions,))
diff_l_scaled_delta_upper_bound: ,  ⊢  
In [19]:
# For the 2nd Summation
diff_l_scaled_delta_upper_bound_2 = _diff_l_scaled_delta_floor.deduce_bound(
        neg_scaled_delta_lower_bound,
        assumptions=defaults.assumptions + (second_sum_conditions,))
diff_l_scaled_delta_upper_bound_2: ,  ⊢  

(4) Bound on the First Summand and First Sum

We can find an $\ell$-dependent upper bound on the first summand, then an upper bound on the first summation.

In [20]:
first_summand_bound_02 = the_summand.deduce_bound(scaled_delta_lower_bound.reversed(),
        assumptions=defaults.assumptions + (first_sum_conditions,))
first_summand_bound_02: ,  ⊢  
In [21]:
first_summand_bound_generalized = first_summand_bound_02.generalize((l), conditions=[first_sum_conditions])
first_summand_bound_generalized:  ⊢  
In [22]:
first_sum_bound = first_sum.deduce_bound(first_summand_bound_generalized)
first_sum_bound:  ⊢  

(5) Bound on the Second Summand and Second Sum

We can find an $\ell$-dependent upper bound on the second summand, then an upper bound on the second summation.

In [23]:
second_summand_bound_02 = the_summand.deduce_bound(diff_l_scaled_delta_upper_bound_2,
        assumptions=defaults.assumptions + (second_sum_conditions,))
second_summand_bound_02: ,  ⊢  
In [24]:
second_summand_bound_02_relaxed = second_summand_bound_02.derive_relaxed()
second_summand_bound_02_relaxed: ,  ⊢  
In [25]:
second_summand_bound_generalized = second_summand_bound_02.generalize([l], conditions=[second_sum_conditions])
second_summand_bound_generalized:  ⊢  
In [26]:
second_summand_bound_relaxed_generalized = second_summand_bound_02_relaxed.generalize([l], conditions=[second_sum_conditions])
second_summand_bound_relaxed_generalized:  ⊢  
In [27]:
second_sum_bound = second_sum.deduce_bound(second_summand_bound_relaxed_generalized)
second_sum_bound:  ⊢  

(6) Bound on the Sum of Summations

Now we're ready to invoke our deduce_bound() method utilizing the bounds we've established on each separate summation.
The following three steps correspond to the transition from (5.30) to (5.31) in Nielsen & Chuang (pg 224):

In [28]:
_failure_upper_bound_lemma_inst_bound_01 = _failure_upper_bound_lemma_inst.rhs.deduce_bound(first_sum_bound)
_failure_upper_bound_lemma_inst_bound_01:  ⊢  
In [29]:
_failure_upper_bound_lemma_inst_bound_02 = _failure_upper_bound_lemma_inst_bound_01.rhs.deduce_bound(second_sum_bound)
_failure_upper_bound_lemma_inst_bound_02:  ⊢  
In [30]:
_failure_upper_bound_lemma_inst_bound_03 = (
    _failure_upper_bound_lemma_inst_bound_01.apply_transitivity(_failure_upper_bound_lemma_inst_bound_02))
_failure_upper_bound_lemma_inst_bound_03:  ⊢  

Next, shift the index of the second summation to create identical summands in each of the summations:

In [31]:
_failure_upper_bound_lemma_inst_bound_04 = (
    _failure_upper_bound_lemma_inst_bound_03.inner_expr().rhs.operands[1].
    operands[1].shift(Neg(one)))
_failure_upper_bound_lemma_inst_bound_04:  ⊢  

Then negate and flip the order of indices on the first summation (possible because the summand is an even function).

In [32]:
_failure_upper_bound_lemma_inst_bound_05 = (
    _failure_upper_bound_lemma_inst_bound_04.inner_expr().rhs.operands[1].
    operands[0].negate_index())
_failure_upper_bound_lemma_inst_bound_05:  ⊢  

Now we're ready to split off the first element of the second summation.
Nielsen & Chuang originally split off the first element of the first summation, eventually leading to a bound requiring $e \ge 2$.
Instead, we split off the first term of the second summation, allowing us to eventually derive a bound valid for $e \ge 1$.
In doing so, the resulting expression is auto-simplified to combine the two resulting like-summations:

In [33]:
Mult.change_simplification_directives(distribute_numeric_rational=True)
bound_07 = _failure_upper_bound_lemma_inst_bound_05.inner_expr().rhs.factors[1].operands[1].split_first()
bound_07:  ⊢  
In [34]:
sum_bound_as_integral = bound_07.rhs.terms[0].factors[1].upper_bound_as_integral()
sum_bound_as_integral:  ⊢  
In [35]:
integral_bound = sum_bound_as_integral.rhs.bound_via_upper_limit_bound()
integral_bound:  ⊢  
In [36]:
bound_07.rhs.deduce_bound(sum_bound_as_integral.apply_transitivity(integral_bound))
In [37]:
%qed
proveit.physics.quantum.QPE._failure_upper_bound has been proven.
Out[37]:
 step typerequirementsstatement
0generalization1  ⊢  
1instantiation469, 2, 3  ⊢  
  : , : , :
2instantiation79, 4, 5  ⊢  
  : , : , :
3instantiation243, 525, 6, 7, 8, 9  ⊢  
  : , : , : , :
4instantiation79, 10, 11  ⊢  
  : , : , :
5instantiation147, 12, 13, 14, 15  ⊢  
  : , : , :
6instantiation459  ⊢  
  : , :
7instantiation459  ⊢  
  : , :
8instantiation205, 16  ⊢  
  : , :
9instantiation205, 17  ⊢  
  : , :
10instantiation18, 514  ⊢  
  :
11instantiation469, 19, 20, 21*  ⊢  
  : , : , :
12instantiation22, 179, 204  ⊢  
  : , :
13instantiation22, 175, 314  ⊢  
  : , :
14instantiation22, 175, 23  ⊢  
  : , :
15instantiation114, 175, 314, 23, 24, 25  ⊢  
  : , : , :
16instantiation29, 26, 27, 28  ⊢  
  : , : , : , :
17instantiation29, 30, 31, 32  ⊢  
  : , : , : , :
18conjecture  ⊢  
 proveit.physics.quantum.QPE._failure_upper_bound_lemma
19instantiation469, 33, 34  ⊢  
  : , : , :
20instantiation35, 497, 479, 133  ⊢  
  : , : , : , :
21instantiation404, 36, 37  ⊢  
  : , : , :
22conjecture  ⊢  
 proveit.numbers.multiplication.mult_real_closure_bin
23instantiation370, 493, 456, 224  ⊢  
  : , :
24instantiation79, 38, 39  ⊢  
  : , : , :
25instantiation400, 40  ⊢  
  : , :
26instantiation110, 483, 41, 42, 43*  ⊢  
  : , :
27instantiation325  ⊢  
  :
28instantiation205, 44  ⊢  
  : , :
29conjecture  ⊢  
 proveit.logic.equality.four_chain_transitivity
30instantiation110, 483, 45, 46, 47*  ⊢  
  : , :
31instantiation325  ⊢  
  :
32instantiation205, 48  ⊢  
  : , :
33instantiation469, 49, 50  ⊢  
  : , : , :
34instantiation51, 451, 452, 52*, 53*, 54*  ⊢  
  : , : , : , :
35conjecture  ⊢  
 proveit.numbers.summation.sum_split_first
36instantiation234, 55  ⊢  
  : , : , :
37instantiation239, 515, 525, 444, 56, 445, 144, 57, 163, 58*  ⊢  
  : , : , : , : , : , :
38instantiation59, 60, 61, 478, 479, 62, 63, 83*  ⊢  
  : , : , : , :
39instantiation64, 65, 66, 67  ⊢  
  : , :
40instantiation194, 262  ⊢  
  :
41instantiation93, 461, 226  ⊢  
  : , :
42instantiation73, 525, 68, 249, 69  ⊢  
  : , :
43instantiation404, 70, 71  ⊢  
  : , : , :
44instantiation234, 72  ⊢  
  : , : , :
45instantiation93, 286, 140  ⊢  
  : , :
46instantiation73, 525, 74, 177, 75  ⊢  
  : , :
47instantiation404, 76, 77  ⊢  
  : , : , :
48instantiation234, 78  ⊢  
  : , : , :
49instantiation79, 80, 81  ⊢  
  : , : , :
50instantiation82, 478, 517, 491, 83*, 84*  ⊢  
  : , : , : , : , :
51conjecture  ⊢  
 proveit.numbers.summation.index_negate
52instantiation280, 85  ⊢  
  :
53instantiation86, 87, 483, 88*  ⊢  
  : , :
54instantiation89, 90, 515, 267*,  ⊢  
  : , :
55instantiation404, 91, 92  ⊢  
  : , : , :
56instantiation459  ⊢  
  : , :
57instantiation93, 461, 283  ⊢  
  : , :
58instantiation404, 94, 95  ⊢  
  : , : , :
59conjecture  ⊢  
 proveit.numbers.summation.integral_upper_bound_of_sum
60conjecture  ⊢  
 proveit.numbers.functions.one_over_x_sqrd_in_mon_dec_fxns
61instantiation494, 96  ⊢  
  : , :
62instantiation147, 493, 456, 215, 216, 173*  ⊢  
  : , : , :
63instantiation97, 98  ⊢  
  : , : , :
64conjecture  ⊢  
 proveit.numbers.integration.boundedInvSqrdIntegral
65instantiation523, 330, 99  ⊢  
  : , : , :
66instantiation169, 253, 100  ⊢  
  :
67instantiation400, 133  ⊢  
  : , :
68instantiation459  ⊢  
  : , :
69instantiation523, 287, 101  ⊢  
  : , : , :
70instantiation234, 102  ⊢  
  : , : , :
71instantiation404, 103, 104  ⊢  
  : , : , :
72instantiation110, 483, 226, 224, 105*  ⊢  
  : , :
73conjecture  ⊢  
 proveit.numbers.multiplication.mult_not_eq_zero
74instantiation459  ⊢  
  : , :
75instantiation106, 140, 238  ⊢  
  :
76instantiation234, 107  ⊢  
  : , : , :
77instantiation404, 108, 109  ⊢  
  : , : , :
78instantiation110, 483, 140, 238, 111*  ⊢  
  : , :
79conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_eq_less_eq
80instantiation114, 179, 112, 115, 113, 118  ⊢  
  : , : , :
81instantiation114, 179, 115, 116, 117, 118  ⊢  
  : , : , :
82conjecture  ⊢  
 proveit.numbers.summation.index_shift
83instantiation404, 119, 120  ⊢  
  : , : , :
84instantiation404, 121, 122,  ⊢  
  : , : , :
85instantiation523, 492, 123  ⊢  
  : , : , :
86conjecture  ⊢  
 proveit.numbers.negation.distribute_neg_through_binary_sum
87instantiation523, 492, 124  ⊢  
  : , : , :
88instantiation280, 260  ⊢  
  :
89conjecture  ⊢  
 proveit.numbers.exponentiation.even_pow_is_even_fn
90instantiation523, 492, 389,  ⊢  
  : , : , :
91instantiation256, 515, 525, 444, 125, 445, 283, 163  ⊢  
  : , : , : , : , : , :
92instantiation404, 126, 127  ⊢  
  : , : , :
93conjecture  ⊢  
 proveit.numbers.multiplication.mult_complex_closure_bin
94instantiation424, 515, 525, 444, 128, 445, 144, 461, 283  ⊢  
  : , : , : , : , : , :
95instantiation129, 444, 525, 515, 445, 130, 144, 461, 283, 131*  ⊢  
  : , : , : , : , : , :
96conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.real_pos_within_real
97theorem  ⊢  
 proveit.logic.sets.inclusion.fold_subset_eq
98generalization132  ⊢  
99instantiation523, 349, 490  ⊢  
  : , : , :
100instantiation419, 498, 133  ⊢  
  : , : , :
101instantiation523, 316, 282  ⊢  
  : , : , :
102instantiation139, 461, 226, 384, 134, 224, 135*  ⊢  
  : , : , :
103instantiation424, 515, 525, 444, 136, 445, 483, 137, 138  ⊢  
  : , : , : , : , : , :
104instantiation443, 444, 525, 445, 136, 137, 138  ⊢  
  : , : , : , :
105instantiation285, 138  ⊢  
  :
106conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.nonzero_complex_is_complex_nonzero
107instantiation139, 286, 140, 384, 141, 238, 142*, 180*  ⊢  
  : , : , :
108instantiation424, 515, 525, 444, 143, 445, 483, 144, 181  ⊢  
  : , : , : , : , : , :
109instantiation443, 444, 525, 445, 143, 144, 181  ⊢  
  : , : , : , :
110conjecture  ⊢  
 proveit.numbers.division.div_as_mult
111instantiation404, 145, 146  ⊢  
  : , : , :
112instantiation396, 148, 151  ⊢  
  : , :
113instantiation147, 151, 148, 150, 149  ⊢  
  : , : , :
114conjecture  ⊢  
 proveit.numbers.multiplication.weak_bound_via_right_factor_bound
115instantiation396, 150, 151  ⊢  
  : , :
116instantiation396, 150, 152  ⊢  
  : , :
117instantiation343, 150, 151, 152, 153  ⊢  
  : , : , :
118instantiation400, 154  ⊢  
  : , :
119instantiation256, 444, 525, 515, 445, 155, 226, 483, 425  ⊢  
  : , : , : , : , : , :
120instantiation201, 483, 226, 203  ⊢  
  : , : , :
121instantiation234, 156  ⊢  
  : , : , :
122instantiation404, 157, 158,  ⊢  
  : , : , :
123instantiation523, 501, 159  ⊢  
  : , : , :
124instantiation523, 501, 160  ⊢  
  : , : , :
125instantiation459  ⊢  
  : , :
126instantiation161, 515, 444, 445, 283, 163  ⊢  
  : , : , : , : , : , : , :
127instantiation258, 444, 525, 515, 445, 162, 283, 163, 164*  ⊢  
  : , : , : , : , : , :
128instantiation459  ⊢  
  : , :
129conjecture  ⊢  
 proveit.numbers.multiplication.association
130instantiation459  ⊢  
  : , :
131instantiation165, 483, 461, 177, 166, 167*, 168*  ⊢  
  : , : , : , :
132instantiation169, 170, 171,  ⊢  
  :
133instantiation469, 172, 173  ⊢  
  : , : , :
134instantiation307, 430  ⊢  
  :
135instantiation176, 249, 508, 174*  ⊢  
  : , :
136instantiation459  ⊢  
  : , :
137instantiation523, 492, 175  ⊢  
  : , : , :
138instantiation460, 226, 425  ⊢  
  : , :
139conjecture  ⊢  
 proveit.numbers.exponentiation.real_power_of_product
140instantiation523, 492, 237  ⊢  
  : , : , :
141instantiation307, 321  ⊢  
  :
142instantiation176, 177, 508, 178*  ⊢  
  : , :
143instantiation459  ⊢  
  : , :
144instantiation523, 492, 179  ⊢  
  : , : , :
145instantiation234, 180  ⊢  
  : , : , :
146instantiation285, 181  ⊢  
  :
147conjecture  ⊢  
 proveit.numbers.addition.weak_bound_via_left_term_bound
148modus ponens182, 183  ⊢  
149modus ponens184, 185  ⊢  
150modus ponens186, 187  ⊢  
151modus ponens188, 189  ⊢  
152modus ponens190, 191  ⊢  
153modus ponens192, 193  ⊢  
154instantiation194, 265  ⊢  
  :
155instantiation459  ⊢  
  : , :
156instantiation195, 430, 196, 197, 198, 199  ⊢  
  : , : , :
157instantiation256, 444, 525, 515, 445, 200, 202, 483, 425,  ⊢  
  : , : , : , : , : , :
158instantiation201, 483, 202, 203,  ⊢  
  : , : , :
159instantiation523, 509, 478  ⊢  
  : , : , :
160instantiation523, 509, 467  ⊢  
  : , : , :
161conjecture  ⊢  
 proveit.numbers.addition.leftward_commutation
162instantiation459  ⊢  
  : , :
163instantiation523, 492, 204  ⊢  
  : , : , :
164instantiation205, 206, 319*  ⊢  
  : , :
165conjecture  ⊢  
 proveit.numbers.division.prod_of_fracs
166instantiation523, 287, 207  ⊢  
  : , : , :
167instantiation208, 461  ⊢  
  :
168instantiation404, 209, 210  ⊢  
  : , : , :
169conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.pos_real_is_real_pos
170instantiation211, 252, 253, 254,  ⊢  
  : , : , :
171instantiation504, 212, 213,  ⊢  
  : , : , :
172instantiation214, 456, 215, 493, 216, 505  ⊢  
  : , : , :
173instantiation404, 217, 218  ⊢  
  : , : , :
174instantiation221, 461  ⊢  
  :
175instantiation523, 501, 219  ⊢  
  : , : , :
176conjecture  ⊢  
 proveit.numbers.exponentiation.neg_power_as_div
177instantiation523, 287, 220  ⊢  
  : , : , :
178instantiation221, 286  ⊢  
  :
179instantiation523, 501, 222  ⊢  
  : , : , :
180instantiation223, 226, 472, 384, 224, 225*  ⊢  
  : , : , :
181instantiation460, 226, 320  ⊢  
  : , :
182instantiation353  ⊢  
  : , : , :
183generalization227  ⊢  
184instantiation232  ⊢  
  : , : , :
185generalization228  ⊢  
186instantiation353  ⊢  
  : , : , :
187generalization229  ⊢  
188instantiation353  ⊢  
  : , : , :
189generalization230  ⊢  
190instantiation353  ⊢  
  : , : , :
191generalization231  ⊢  
192instantiation232  ⊢  
  : , : , :
193generalization233  ⊢  
194conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.positive_if_in_rational_pos
195conjecture  ⊢  
 proveit.core_expr_types.tuples.tuple_eq_via_elem_eq
196instantiation459  ⊢  
  : , :
197instantiation459  ⊢  
  : , :
198instantiation234, 235  ⊢  
  : , : , :
199instantiation325  ⊢  
  :
200instantiation459  ⊢  
  : , :
201conjecture  ⊢  
 proveit.numbers.addition.subtraction.add_cancel_triple_23
202instantiation523, 492, 236,  ⊢  
  : , : , :
203instantiation325  ⊢  
  :
204instantiation370, 493, 237, 238  ⊢  
  : , :
205theorem  ⊢  
 proveit.logic.equality.equals_reversal
206instantiation239, 444, 525, 515, 445, 240, 483, 283, 241*  ⊢  
  : , : , : , : , : , :
207instantiation523, 316, 242  ⊢  
  : , : , :
208conjecture  ⊢  
 proveit.numbers.division.frac_one_denom
209instantiation243, 525, 244, 245, 246, 247  ⊢  
  : , : , : , :
210instantiation248, 249, 483, 267*, 250*  ⊢  
  : , : , :
211conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.all_in_interval_cc__is__real
212instantiation421, 440  ⊢  
  : , :
213instantiation251, 252, 253, 254,  ⊢  
  : , : , :
214conjecture  ⊢  
 proveit.numbers.ordering.less_eq_add_right_strong
215instantiation523, 501, 255  ⊢  
  : , : , :
216instantiation431, 512, 513, 514  ⊢  
  : , : , :
217instantiation256, 444, 525, 515, 445, 257, 260, 320, 483  ⊢  
  : , : , : , : , : , :
218instantiation258, 515, 525, 444, 259, 445, 260, 320, 483, 261*  ⊢  
  : , : , : , : , : , :
219instantiation523, 264, 262  ⊢  
  : , : , :
220instantiation523, 316, 263  ⊢  
  : , : , :
221conjecture  ⊢  
 proveit.numbers.exponentiation.complex_x_to_first_power_is_x
222instantiation523, 264, 265  ⊢  
  : , : , :
223conjecture  ⊢  
 proveit.numbers.exponentiation.real_power_of_real_power
224instantiation307, 490  ⊢  
  :
225instantiation266, 461, 483, 267*  ⊢  
  : , :
226instantiation523, 492, 456  ⊢  
  : , : , :
227instantiation370, 493, 268, 269,  ⊢  
  : , :
228instantiation270, 271, 326, 322, 272,  ⊢  
  : , : , :
229instantiation370, 493, 273, 274,  ⊢  
  : , :
230instantiation370, 493, 275, 276,  ⊢  
  : , :
231instantiation370, 493, 277, 278,  ⊢  
  : , :
232conjecture  ⊢  
 proveit.numbers.summation.weak_summation_from_summands_bound
233instantiation400, 279,  ⊢  
  : , :
234axiom  ⊢  
 proveit.logic.equality.substitution
235instantiation280, 483  ⊢  
  :
236instantiation523, 501, 281,  ⊢  
  : , : , :
237instantiation388, 456, 525  ⊢  
  : , :
238instantiation390, 282, 392  ⊢  
  : , :
239conjecture  ⊢  
 proveit.numbers.multiplication.distribute_through_sum
240instantiation459  ⊢  
  : , :
241instantiation285, 283  ⊢  
  :
242instantiation523, 409, 284  ⊢  
  : , : , :
243axiom  ⊢  
 proveit.core_expr_types.operations.operands_substitution
244instantiation459  ⊢  
  : , :
245instantiation459  ⊢  
  : , :
246instantiation285, 461  ⊢  
  :
247instantiation423, 286  ⊢  
  :
248conjecture  ⊢  
 proveit.numbers.division.frac_cancel_left
249instantiation523, 287, 288  ⊢  
  : , : , :
250conjecture  ⊢  
 proveit.numbers.numerals.decimals.mult_2_2
251conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.interval_cc_lower_bound
252instantiation523, 501, 289  ⊢  
  : , : , :
253instantiation523, 501, 290  ⊢  
  : , : , :
254assumption  ⊢  
255instantiation523, 509, 513  ⊢  
  : , : , :
256conjecture  ⊢  
 proveit.numbers.addition.disassociation
257instantiation459  ⊢  
  : , :
258conjecture  ⊢  
 proveit.numbers.addition.association
259instantiation459  ⊢  
  : , :
260instantiation523, 492, 291  ⊢  
  : , : , :
261instantiation469, 292, 293  ⊢  
  : , : , :
262instantiation296, 329, 294  ⊢  
  : , :
263instantiation523, 409, 295  ⊢  
  : , : , :
264conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.rational_pos_within_rational
265instantiation296, 329, 297  ⊢  
  : , :
266conjecture  ⊢  
 proveit.numbers.multiplication.mult_neg_right
267instantiation423, 461  ⊢  
  :
268instantiation388, 357, 525,  ⊢  
  : , :
269instantiation305, 298,  ⊢  
  :
270conjecture  ⊢  
 proveit.numbers.division.weak_div_from_denom_bound__all_pos
271instantiation523, 299, 300  ⊢  
  : , : , :
272instantiation301, 472, 357, 376, 302, 303,  ⊢  
  : , : , :
273instantiation388, 376, 525,  ⊢  
  : , :
274instantiation305, 304,  ⊢  
  :
275instantiation388, 378, 525,  ⊢  
  : , :
276instantiation305, 306,  ⊢  
  :
277instantiation388, 333, 525,  ⊢  
  : , :
278instantiation307, 350,  ⊢  
  :
279instantiation308, 309, 310, 328, 311,  ⊢  
  : , : , :
280conjecture  ⊢  
 proveit.numbers.negation.double_negation
281instantiation523, 509, 312,  ⊢  
  : , : , :
282instantiation523, 409, 313  ⊢  
  : , : , :
283instantiation523, 492, 314  ⊢  
  : , : , :
284instantiation523, 429, 508  ⊢  
  : , : , :
285conjecture  ⊢  
 proveit.numbers.multiplication.elim_one_left
286instantiation523, 492, 315  ⊢  
  : , : , :
287conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.real_nonzero_within_complex_nonzero
288instantiation523, 316, 392  ⊢  
  : , : , :
289instantiation523, 509, 317  ⊢  
  : , : , :
290instantiation523, 509, 479  ⊢  
  : , : , :
291instantiation486, 487, 520  ⊢  
  : , : , :
292instantiation318, 483, 461, 319  ⊢  
  : , : , :
293instantiation482, 483, 320  ⊢  
  : , :
294instantiation523, 349, 430  ⊢  
  : , : , :
295instantiation523, 429, 321  ⊢  
  : , : , :
296conjecture  ⊢  
 proveit.numbers.division.div_rational_pos_closure
297instantiation523, 349, 321  ⊢  
  : , : , :
298instantiation523, 327, 322,  ⊢  
  : , : , :
299conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_nonneg_within_real_nonneg
300instantiation523, 323, 515  ⊢  
  : , : , :
301conjecture  ⊢  
 proveit.numbers.exponentiation.exp_even_neg_base_lesseq
302instantiation351, 324, 393,  ⊢  
  : , :
303instantiation325  ⊢  
  :
304instantiation523, 327, 326,  ⊢  
  : , : , :
305conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.nonzero_if_in_real_nonzero
306instantiation523, 327, 328,  ⊢  
  : , : , :
307conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.nonzero_if_is_nat_pos
308conjecture  ⊢  
 proveit.numbers.division.strong_div_from_denom_bound__all_pos
309instantiation523, 330, 329  ⊢  
  : , : , :
310instantiation523, 330, 331,  ⊢  
  : , : , :
311instantiation332, 472, 333, 378, 334, 335,  ⊢  
  : , : , :
312instantiation523, 336, 337,  ⊢  
  : , : , :
313instantiation523, 429, 490  ⊢  
  : , : , :
314modus ponens338, 339  ⊢  
315instantiation523, 501, 340  ⊢  
  : , : , :
316conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_nonzero_within_real_nonzero
317instantiation516, 478, 491  ⊢  
  : , :
318conjecture  ⊢  
 proveit.numbers.addition.subtraction.subtract_from_add_reversed
319conjecture  ⊢  
 proveit.numbers.numerals.decimals.add_1_1
320instantiation523, 492, 341  ⊢  
  : , : , :
321conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat4
322instantiation347, 357, 342,  ⊢  
  :
323conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.nat_within_rational_nonneg
324instantiation343, 376, 398, 455, 344, 345*,  ⊢  
  : , : , :
325axiom  ⊢  
 proveit.logic.equality.equals_reflexivity
326instantiation347, 376, 346,  ⊢  
  :
327conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.real_pos_within_real_nonzero
328instantiation347, 378, 348,  ⊢  
  :
329instantiation523, 349, 508  ⊢  
  : , : , :
330conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_pos_within_real_pos
331instantiation523, 349, 350,  ⊢  
  : , : , :
332conjecture  ⊢  
 proveit.numbers.exponentiation.exp_pos_less
333instantiation396, 397, 384,  ⊢  
  : , :
334instantiation351, 382, 352,  ⊢  
  : , :
335instantiation476, 430  ⊢  
  :
336instantiation510, 497, 479  ⊢  
  : , :
337assumption  ⊢  
338instantiation353  ⊢  
  : , : , :
339generalization354  ⊢  
340instantiation523, 509, 355  ⊢  
  : , : , :
341instantiation523, 501, 356  ⊢  
  : , : , :
342instantiation377, 357, 455, 358,  ⊢  
  : , :
343conjecture  ⊢  
 proveit.numbers.addition.weak_bound_via_right_term_bound
344instantiation359, 455, 418, 394, 360*  ⊢  
  : , :
345instantiation481, 361,  ⊢  
  :
346instantiation362, 415, 363, 393,  ⊢  
  : , :
347conjecture  ⊢  
 proveit.numbers.exponentiation.sqrd_pos_closure
348instantiation364, 365,  ⊢  
  : , :
349conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.nat_pos_within_rational_pos
350instantiation366, 367, 525,  ⊢  
  : , :
351theorem  ⊢  
 proveit.logic.booleans.conjunction.and_if_both
352instantiation368, 397, 384, 398, 369,  ⊢  
  : , : , :
353conjecture  ⊢  
 proveit.numbers.summation.summation_real_closure
354instantiation370, 493, 371, 372,  ⊢  
  : , :
355instantiation523, 524, 373  ⊢  
  : , : , :
356instantiation523, 509, 518  ⊢  
  : , : , :
357instantiation396, 376, 398,  ⊢  
  : , :
358instantiation374, 375,  ⊢  
  : , :
359conjecture  ⊢  
 proveit.numbers.negation.negated_weak_bound
360conjecture  ⊢  
 proveit.numbers.negation.negated_zero
361instantiation523, 492, 376,  ⊢  
  : , : , :
362conjecture  ⊢  
 proveit.numbers.ordering.less_is_not_eq_int
363conjecture  ⊢  
 proveit.numbers.number_sets.integers.zero_is_int
364theorem  ⊢  
 proveit.logic.equality.not_equals_symmetry
365instantiation377, 455, 378, 379,  ⊢  
  : , :
366conjecture  ⊢  
 proveit.numbers.exponentiation.exp_natpos_closure
367instantiation380, 381, 382,  ⊢  
  :
368conjecture  ⊢  
 proveit.numbers.addition.strong_bound_via_right_term_bound
369instantiation383, 384, 418, 493, 420, 385, 386*, 387*  ⊢  
  : , : , :
370conjecture  ⊢  
 proveit.numbers.division.div_real_closure
371instantiation388, 389, 525,  ⊢  
  : , :
372instantiation390, 391, 392,  ⊢  
  : , :
373conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat4
374conjecture  ⊢  
 proveit.numbers.addition.subtraction.neg_difference
375instantiation504, 393, 394,  ⊢  
  : , : , :
376instantiation523, 501, 395,  ⊢  
  : , : , :
377conjecture  ⊢  
 proveit.numbers.ordering.less_is_not_eq
378instantiation396, 397, 398,  ⊢  
  : , :
379instantiation421, 399,  ⊢  
  : , :
380conjecture  ⊢  
 proveit.numbers.number_sets.integers.nonneg_int_is_natural
381instantiation516, 436, 491,  ⊢  
  : , :
382instantiation400, 401,  ⊢  
  : , :
383conjecture  ⊢  
 proveit.numbers.multiplication.reversed_strong_bound_via_right_factor_bound
384instantiation417, 493  ⊢  
  :
385instantiation432, 500  ⊢  
  :
386instantiation402, 483, 403*  ⊢  
  : , :
387instantiation404, 405, 406  ⊢  
  : , : , :
388conjecture  ⊢  
 proveit.numbers.exponentiation.exp_real_closure_nat_power
389instantiation523, 501, 407,  ⊢  
  : , : , :
390conjecture  ⊢  
 proveit.numbers.exponentiation.exp_rational_non_zero__not_zero
391instantiation523, 409, 408,  ⊢  
  : , : , :
392instantiation523, 409, 410  ⊢  
  : , : , :
393instantiation411, 412, 413,  ⊢  
  : , : , :
394instantiation414, 455, 493, 439  ⊢  
  : , : , :
395instantiation523, 509, 415,  ⊢  
  : , : , :
396conjecture  ⊢  
 proveit.numbers.addition.add_real_closure_bin
397instantiation523, 501, 416,  ⊢  
  : , : , :
398instantiation417, 418  ⊢  
  :
399instantiation419, 420, 422,  ⊢  
  : , : , :
400conjecture  ⊢  
 proveit.numbers.ordering.relax_less
401instantiation421, 422,  ⊢  
  : , :
402conjecture  ⊢  
 proveit.numbers.multiplication.mult_neg_left
403instantiation423, 483  ⊢  
  :
404axiom  ⊢  
 proveit.logic.equality.equals_transitivity
405instantiation424, 515, 525, 444, 446, 445, 425, 447, 448  ⊢  
  : , : , : , : , : , :
406instantiation426, 444, 525, 445, 446, 483, 447, 448, 427*  ⊢  
  : , : , : , : , :
407instantiation523, 509, 449,  ⊢  
  : , : , :
408instantiation523, 429, 428,  ⊢  
  : , : , :
409conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.nonzero_int_within_rational_nonzero
410instantiation523, 429, 430  ⊢  
  : , : , :
411conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_eq_less
412instantiation431, 451, 452, 435,  ⊢  
  : , : , :
413instantiation432, 433  ⊢  
  :
414conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.interval_co_lower_bound
415instantiation523, 434, 435,  ⊢  
  : , : , :
416instantiation523, 509, 436,  ⊢  
  : , : , :
417conjecture  ⊢  
 proveit.numbers.negation.real_closure
418instantiation437, 455, 493, 439  ⊢  
  : , : , :
419axiom  ⊢  
 proveit.numbers.ordering.transitivity_less_less
420instantiation438, 455, 493, 439  ⊢  
  : , : , :
421conjecture  ⊢  
 proveit.numbers.addition.subtraction.pos_difference
422instantiation504, 440, 441,  ⊢  
  : , : , :
423conjecture  ⊢  
 proveit.numbers.multiplication.elim_one_right
424conjecture  ⊢  
 proveit.numbers.multiplication.disassociation
425instantiation442, 483  ⊢  
  :
426conjecture  ⊢  
 proveit.numbers.multiplication.mult_neg_any
427instantiation443, 444, 525, 445, 446, 447, 448  ⊢  
  : , : , : , :
428instantiation496, 449, 450,  ⊢  
  :
429conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_pos_within_nonzero_int
430conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat2
431conjecture  ⊢  
 proveit.numbers.number_sets.integers.interval_upper_bound
432conjecture  ⊢  
 proveit.numbers.number_sets.integers.negative_if_in_neg_int
433instantiation507, 477  ⊢  
  :
434instantiation510, 451, 452  ⊢  
  : , :
435assumption  ⊢  
436instantiation523, 453, 458,  ⊢  
  : , : , :
437conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.all_in_interval_co__is__real
438conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.interval_co_upper_bound
439conjecture  ⊢  
 proveit.physics.quantum.QPE._scaled_delta_b_floor_in_interval
440instantiation454, 493, 455, 456, 498, 457*  ⊢  
  : , : , :
441instantiation511, 478, 517, 458,  ⊢  
  : , : , :
442conjecture  ⊢  
 proveit.numbers.negation.complex_closure
443conjecture  ⊢  
 proveit.numbers.multiplication.elim_one_any
444axiom  ⊢  
 proveit.numbers.number_sets.natural_numbers.zero_in_nats
445conjecture  ⊢  
 proveit.core_expr_types.tuples.tuple_len_0_typical_eq
446instantiation459  ⊢  
  : , :
447instantiation460, 461, 462  ⊢  
  : , :
448instantiation523, 492, 463  ⊢  
  : , : , :
449instantiation523, 464, 480,  ⊢  
  : , : , :
450instantiation504, 465, 466,  ⊢  
  : , : , :
451instantiation516, 467, 512  ⊢  
  : , :
452instantiation521, 478  ⊢  
  :
453instantiation510, 478, 517  ⊢  
  : , :
454conjecture  ⊢  
 proveit.numbers.addition.strong_bound_via_left_term_bound
455conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.zero_is_real
456instantiation523, 501, 468  ⊢  
  : , : , :
457instantiation469, 470, 471  ⊢  
  : , : , :
458assumption  ⊢  
459conjecture  ⊢  
 proveit.numbers.numerals.decimals.tuple_len_2_typical_eq
460conjecture  ⊢  
 proveit.numbers.exponentiation.exp_complex_closure
461instantiation523, 492, 472  ⊢  
  : , : , :
462instantiation523, 492, 473  ⊢  
  : , : , :
463instantiation474, 475  ⊢  
  :
464instantiation510, 478, 479  ⊢  
  : , :
465instantiation476, 477  ⊢  
  :
466instantiation511, 478, 479, 480,  ⊢  
  : , : , :
467instantiation521, 517  ⊢  
  :
468instantiation523, 509, 497  ⊢  
  : , : , :
469theorem  ⊢  
 proveit.logic.equality.sub_right_side_into
470instantiation481, 483  ⊢  
  :
471instantiation482, 483, 484  ⊢  
  : , :
472instantiation523, 501, 485  ⊢  
  : , : , :
473instantiation486, 487, 488  ⊢  
  : , : , :
474conjecture  ⊢  
 proveit.physics.quantum.QPE._delta_b_is_real
475conjecture  ⊢  
 proveit.physics.quantum.QPE._best_floor_is_int
476conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.natural_pos_is_pos
477instantiation489, 490, 508  ⊢  
  : , :
478instantiation516, 497, 512  ⊢  
  : , :
479instantiation516, 517, 491  ⊢  
  : , :
480assumption  ⊢  
481conjecture  ⊢  
 proveit.numbers.addition.elim_zero_right
482conjecture  ⊢  
 proveit.numbers.addition.commutation
483instantiation523, 492, 493  ⊢  
  : , : , :
484conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.zero_is_complex
485instantiation523, 509, 522  ⊢  
  : , : , :
486theorem  ⊢  
 proveit.logic.sets.inclusion.unfold_subset_eq
487instantiation494, 495  ⊢  
  : , :
488axiom  ⊢  
 proveit.physics.quantum.QPE._t_in_natural_pos
489conjecture  ⊢  
 proveit.numbers.addition.add_nat_pos_closure_bin
490instantiation496, 497, 498  ⊢  
  :
491instantiation523, 499, 500  ⊢  
  : , : , :
492conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.real_within_complex
493instantiation523, 501, 502  ⊢  
  : , : , :
494theorem  ⊢  
 proveit.logic.sets.inclusion.relax_proper_subset
495conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.nat_pos_within_real
496conjecture  ⊢  
 proveit.numbers.number_sets.integers.pos_int_is_natural_pos
497instantiation523, 503, 514  ⊢  
  : , : , :
498instantiation504, 505, 506  ⊢  
  : , : , :
499conjecture  ⊢  
 proveit.numbers.number_sets.integers.neg_int_within_int
500instantiation507, 508  ⊢  
  :
501conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_within_real
502instantiation523, 509, 512  ⊢  
  : , : , :
503instantiation510, 512, 513  ⊢  
  : , :
504conjecture  ⊢  
 proveit.numbers.ordering.transitivity_less_less_eq
505conjecture  ⊢  
 proveit.numbers.numerals.decimals.less_0_1
506instantiation511, 512, 513, 514  ⊢  
  : , : , :
507conjecture  ⊢  
 proveit.numbers.negation.int_neg_closure
508conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat1
509conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.int_within_rational
510conjecture  ⊢  
 proveit.numbers.number_sets.integers.int_interval_within_int
511conjecture  ⊢  
 proveit.numbers.number_sets.integers.interval_lower_bound
512instantiation523, 524, 515  ⊢  
  : , : , :
513instantiation516, 517, 518  ⊢  
  : , :
514assumption  ⊢  
515theorem  ⊢  
 proveit.numbers.numerals.decimals.nat1
516conjecture  ⊢  
 proveit.numbers.addition.add_int_closure_bin
517instantiation523, 519, 520  ⊢  
  : , : , :
518instantiation521, 522  ⊢  
  :
519conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_pos_within_int
520conjecture  ⊢  
 proveit.physics.quantum.QPE._two_pow_t_minus_one_is_nat_pos
521conjecture  ⊢  
 proveit.numbers.negation.int_closure
522instantiation523, 524, 525  ⊢  
  : , : , :
523theorem  ⊢  
 proveit.logic.sets.inclusion.superset_membership_from_proper_subset
524conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_within_int
525conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat2
*equality replacement requirements