X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Flib%2Fturing%2Fmono.ma;h=5813606a1afe3717940ab819f7463490ddfd6298;hb=5c1794aba0652c0b0bce80a9ffc426192327709f;hp=a9092336d98258179c433e59acefd6ca11f2b047;hpb=70279506c9837750cccf925dc9840b0b3d9951a5;p=helm.git diff --git a/matita/matita/lib/turing/mono.ma b/matita/matita/lib/turing/mono.ma index a9092336d..5813606a1 100644 --- a/matita/matita/lib/turing/mono.ma +++ b/matita/matita/lib/turing/mono.ma @@ -156,6 +156,18 @@ let rec loop (A:Type[0]) n (f:A→A) p a on n ≝ | S m ⇒ if p a then (Some ? a) else loop A m f p (f a) ]. +lemma loop_S_true : + ∀A,n,f,p,a. p a = true → + loop A (S n) f p a = Some ? a. +#A #n #f #p #a #pa normalize >pa // +qed. + +lemma loop_S_false : + ∀A,n,f,p,a. p a = false → + loop A (S n) f p a = loop A n f p (f a). +normalize #A #n #f #p #a #Hpa >Hpa % +qed. + lemma loop_incr : ∀A,f,p,k1,k2,a1,a2. loop A k1 f p a1 = Some ? a2 → loop A (k2+k1) f p a1 = Some ? a2.