ndefinition R ≝ ∃l,u:Q. locate l u.
nlet corec Q_to_locate q : locate q q ≝ L q q ?.
- (*NOT WORKING: nrewrite < (Qmult_one q) in ⊢ (? ? %); *)
ncut (locate q q = locate q ((2*q+q)/3))
[##2: #H; ncases H; (*NOT WORKING: nrewrite > H;*) napply Q_to_locate
| napply eq_f;
ncut ((2 * q + q) = ((2 * q + 1 * q))); //; #H;
ncut (q = ((2 * q + q) / 3)); //;
- ncut ((2 * q + q) = ((2 * q + 1 * q))); //; #K;
- ncut (2 * q + 1 * q = 3 * q); /4/ ]
+ ncut (2 * q + 1 * q = 3 * q); //;
+ /4/ (*CSC: basta applicare la distributivita' a meno di riduzione, altro
+ che 4!*) ]
nqed.
ndefinition Q_to_R : Q → R.
#q; @ q; @q; //.
nqed.
+(*
nlet corec locate_add (l1,u1:?) (r1: locate l1 u1) (l2,u2:?) (r2: locate l2 u2) :
locate (l1 + l2) (u1 + u2) ≝ ?.
ncases r1; ncases r2; #l2; #u2; #r2; #l1; #u1; #r1
nlet corec apart (l1,u1) (r1: locate l1 u1) (l2,u2) (r2: locate l2 u2) : CProp[0] ≝
match disjoint l1 u1 l2 u2 with
[ true ⇒ True
- | false ⇒
\ No newline at end of file
+ | false ⇒
+*)
\ No newline at end of file