logo
In [1]:
import proveit
theory = proveit.Theory() # the theorem's theory
from proveit import b, defaults
from proveit.logic import NotEquals
from proveit.numbers import zero, one, two, pi, Abs, frac, Neg
from proveit.physics.quantum.QPE import (
        _b_floor, _delta_b_floor_diff_in_interval,
        _delta_b_not_eq_scaledNonzeroInt, _two_pow_t_minus_one_is_nat_pos)
In [2]:
%proving _scaled_abs_delta_b_floor_diff_interval
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
_scaled_abs_delta_b_floor_diff_interval:
(see dependencies)
In [3]:
defaults.assumptions = _scaled_abs_delta_b_floor_diff_interval.all_conditions()
defaults.assumptions:
In [4]:
_two_pow_t_minus_one_is_nat_pos
In [5]:
defaults.assumptions[0].derive_element_in_integer()
In [6]:
_delta_b_floor_diff_in_interval
In [7]:
_delta_b_floor_diff_in_interval_inst = _delta_b_floor_diff_in_interval.instantiate()
_delta_b_floor_diff_in_interval_inst:  ⊢  
In [8]:
delta_diff = _delta_b_floor_diff_in_interval_inst.element
delta_diff:
In [9]:
_delta_b_floor_diff_in_interval_inst.domain.deduce_relaxed_membership(delta_diff)
In [10]:
# for convenience, label the abs value component
abs_val_delta_diff = Abs(delta_diff)
abs_val_delta_diff:
In [11]:
abs_val_leq_one_half = abs_val_delta_diff.deduce_weak_upper_bound(frac(one, two))
abs_val_leq_one_half:  ⊢  
In [12]:
upper_bound = (
        abs_val_leq_one_half.left_mult_both_sides(pi).
        inner_expr().rhs.distribute())
upper_bound:  ⊢  
In [13]:
_delta_b_not_eq_scaledNonzeroInt.instantiate({b: _b_floor})
In [14]:
NotEquals(delta_diff, zero).prove()
_scaled_abs_delta_b_floor_diff_interval may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [15]:
%qed
proveit.physics.quantum.QPE._scaled_abs_delta_b_floor_diff_interval has been proven.
Out[15]:
 step typerequirementsstatement
0generalization1  ⊢  
1instantiation2, 3, 4, 5, 6,  ⊢  
  : , : , :
2conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.in_IntervalOC
3conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.zero_is_real
4instantiation71, 46, 73, 74  ⊢  
  : , :
5instantiation7, 46, 18  ⊢  
  : , :
6instantiation8, 9, 10,  ⊢  
  : , :
7conjecture  ⊢  
 proveit.numbers.multiplication.mult_real_closure_bin
8theorem  ⊢  
 proveit.logic.booleans.conjunction.and_if_both
9instantiation45, 11,  ⊢  
  :
10instantiation12, 13, 14  ⊢  
  : , : , :
11instantiation15, 53, 16,  ⊢  
  : , :
12theorem  ⊢  
 proveit.logic.equality.sub_right_side_into
13instantiation17, 46, 18, 66, 19, 20, 21*  ⊢  
  : , : , :
14instantiation22, 23, 37, 24, 74, 25*  ⊢  
  : , : , :
15conjecture  ⊢  
 proveit.numbers.multiplication.mult_real_pos_closure_bin
16instantiation26, 27,  ⊢  
  :
17conjecture  ⊢  
 proveit.numbers.multiplication.weak_bound_via_right_factor_bound
18instantiation90, 28, 29  ⊢  
  : , : , :
19instantiation30, 31, 32  ⊢  
  : , :
20instantiation43, 33  ⊢  
  : , :
21instantiation34, 37, 35  ⊢  
  : , :
22conjecture  ⊢  
 proveit.numbers.division.mult_frac_left
23instantiation90, 49, 72  ⊢  
  : , : , :
24instantiation90, 49, 73  ⊢  
  : , : , :
25instantiation36, 37  ⊢  
  :
26conjecture  ⊢  
 proveit.numbers.absolute_value.abs_nonzero_closure
27instantiation38, 41, 39,  ⊢  
  :
28conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.real_nonneg_within_real
29instantiation40, 41  ⊢  
  :
30conjecture  ⊢  
 proveit.numbers.absolute_value.weak_upper_bound
31instantiation42, 59, 66, 60  ⊢  
  : , : , :
32instantiation43, 44  ⊢  
  : , :
33instantiation45, 53  ⊢  
  :
34conjecture  ⊢  
 proveit.numbers.multiplication.commutation
35instantiation90, 49, 66  ⊢  
  : , : , :
36conjecture  ⊢  
 proveit.numbers.multiplication.elim_one_left
37instantiation90, 49, 46  ⊢  
  : , : , :
38conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.nonzero_complex_is_complex_nonzero
39instantiation47, 48,  ⊢  
  : , :
40conjecture  ⊢  
 proveit.numbers.absolute_value.abs_complex_closure
41instantiation90, 49, 50  ⊢  
  : , : , :
42conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.interval_co_lower_bound
43conjecture  ⊢  
 proveit.numbers.ordering.relax_less
44instantiation51, 59, 66, 60  ⊢  
  : , : , :
45conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.positive_if_in_real_pos
46instantiation90, 52, 53  ⊢  
  : , : , :
47conjecture  ⊢  
 proveit.numbers.addition.subtraction.nonzero_difference_if_different
48instantiation54, 55, 56, 57,  ⊢  
  : , :
49conjecture  ⊢  
 proveit.numbers.number_sets.complex_numbers.real_within_complex
50instantiation58, 59, 66, 60  ⊢  
  : , : , :
51conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.interval_co_upper_bound
52conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.real_pos_within_real
53conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.pi_is_real_pos
54conjecture  ⊢  
 proveit.physics.quantum.QPE._delta_b_not_eq_scaledNonzeroInt
55instantiation61, 62, 89, 63  ⊢  
  : , : , : , : , :
56instantiation90, 64, 68  ⊢  
  : , : , :
57assumption  ⊢  
58conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.all_in_interval_co__is__real
59instantiation65, 66  ⊢  
  :
60instantiation67, 68  ⊢  
  :
61conjecture  ⊢  
 proveit.logic.sets.enumeration.in_enumerated_set
62axiom  ⊢  
 proveit.numbers.number_sets.natural_numbers.zero_in_nats
63conjecture  ⊢  
 proveit.core_expr_types.tuples.tuple_len_0_typical_eq
64instantiation69, 70, 83  ⊢  
  : , :
65conjecture  ⊢  
 proveit.numbers.negation.real_closure
66instantiation71, 72, 73, 74  ⊢  
  : , :
67conjecture  ⊢  
 proveit.physics.quantum.QPE._delta_b_floor_diff_in_interval
68assumption  ⊢  
69conjecture  ⊢  
 proveit.numbers.number_sets.integers.int_interval_within_int
70instantiation75, 76, 84  ⊢  
  : , :
71conjecture  ⊢  
 proveit.numbers.division.div_real_closure
72instantiation90, 78, 77  ⊢  
  : , : , :
73instantiation90, 78, 79  ⊢  
  : , : , :
74instantiation80, 81  ⊢  
  :
75conjecture  ⊢  
 proveit.numbers.addition.add_int_closure_bin
76instantiation82, 83  ⊢  
  :
77instantiation90, 85, 84  ⊢  
  : , : , :
78conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_within_real
79instantiation90, 85, 86  ⊢  
  : , : , :
80conjecture  ⊢  
 proveit.numbers.number_sets.natural_numbers.nonzero_if_is_nat_pos
81conjecture  ⊢  
 proveit.numbers.numerals.decimals.posnat2
82conjecture  ⊢  
 proveit.numbers.negation.int_closure
83instantiation90, 87, 88  ⊢  
  : , : , :
84instantiation90, 91, 89  ⊢  
  : , : , :
85conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.int_within_rational
86instantiation90, 91, 92  ⊢  
  : , : , :
87conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_pos_within_int
88conjecture  ⊢  
 proveit.physics.quantum.QPE._two_pow_t_minus_one_is_nat_pos
89theorem  ⊢  
 proveit.numbers.numerals.decimals.nat1
90theorem  ⊢  
 proveit.logic.sets.inclusion.superset_membership_from_proper_subset
91conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_within_int
92conjecture  ⊢  
 proveit.numbers.numerals.decimals.nat2
*equality replacement requirements