logo
In [1]:
import proveit
theory = proveit.Theory() # the theorem's theory
from proveit import defaults, x
from proveit.logic import InSet
from proveit.numbers import Real
from proveit.numbers import zero_in_nats
from proveit.numbers.number_sets.real_numbers import int_within_real
from proveit.numbers.rounding import Floor
from proveit.numbers.rounding import floor_is_an_int, real_minus_floor_lower_bound, real_minus_floor_upper_bound
In [2]:
%proving real_minus_floor_interval
With these allowed/disallowed theorem/theory presumptions (e.g., to avoid circular dependencies), we begin our proof of
real_minus_floor_interval:
(see dependencies)
real_minus_floor_interval may now be readily provable (assuming required theorems are usable).  Simply execute "%qed".
In [3]:
defaults.assumptions = real_minus_floor_interval.conditions
defaults.assumptions:
In [4]:
interval = real_minus_floor_interval.instance_expr.operands[1]
interval:
In [5]:
x_minus_floor = real_minus_floor_interval.instance_expr.operands[0]
x_minus_floor:
In [6]:
floor_is_an_int.instantiate({x:x})
In [7]:
real_minus_floor_lower_bound
In [8]:
real_minus_floor_lower_bound.instantiate({x:x})
In [9]:
real_minus_floor_upper_bound
In [10]:
real_minus_floor_upper_bound.instantiate({x:x})
In [11]:
%qed
proveit.numbers.rounding.real_minus_floor_interval has been proven.
Out[11]:
 step typerequirementsstatement
0generalization1  ⊢  
1instantiation2, 3, 4, 5, 6  ⊢  
  : , : , :
2conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.in_IntervalCO
3conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.zero_is_real
4instantiation22, 20, 7  ⊢  
  : , : , :
5instantiation8, 26, 9  ⊢  
  : , :
6instantiation10, 11, 12  ⊢  
  : , :
7instantiation22, 23, 13  ⊢  
  : , : , :
8conjecture  ⊢  
 proveit.numbers.addition.add_real_closure_bin
9instantiation14, 15  ⊢  
  :
10theorem  ⊢  
 proveit.logic.booleans.conjunction.and_if_both
11instantiation16, 26  ⊢  
  :
12instantiation17, 26  ⊢  
  :
13instantiation22, 18, 19  ⊢  
  : , : , :
14conjecture  ⊢  
 proveit.numbers.negation.real_closure
15instantiation22, 20, 21  ⊢  
  : , : , :
16conjecture  ⊢  
 proveit.numbers.rounding.real_minus_floor_lower_bound
17conjecture  ⊢  
 proveit.numbers.rounding.real_minus_floor_upper_bound
18conjecture  ⊢  
 proveit.numbers.number_sets.integers.nat_within_int
19theorem  ⊢  
 proveit.numbers.numerals.decimals.nat1
20conjecture  ⊢  
 proveit.numbers.number_sets.real_numbers.rational_within_real
21instantiation22, 23, 24  ⊢  
  : , : , :
22theorem  ⊢  
 proveit.logic.sets.inclusion.superset_membership_from_proper_subset
23conjecture  ⊢  
 proveit.numbers.number_sets.rational_numbers.int_within_rational
24instantiation25, 26  ⊢  
  :
25axiom  ⊢  
 proveit.numbers.rounding.floor_is_an_int
26assumption  ⊢