From: Claudio Sacerdoti Coen Date: Mon, 2 Dec 2013 17:15:14 +0000 (+0000) Subject: More progress. X-Git-Tag: make_still_working~1033 X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=commitdiff_plain;h=a749dc0a33d89c62d10ee7705bbed981fed08d2d More progress. --- diff --git a/matita/matita/lib/MONADS/speranza.ma b/matita/matita/lib/MONADS/speranza.ma index 95d4dda94..99f60c263 100644 --- a/matita/matita/lib/MONADS/speranza.ma +++ b/matita/matita/lib/MONADS/speranza.ma @@ -120,22 +120,26 @@ lemma admissible_leaf_cons: #n #p1 elim p1 // qed. +(* +lemma admissible_node_cons: + ∀x1,x2,p1,p2. + admissible (node x1 x2) (rev_append bool p1 [true]@p2)=true → + admissible x2 p1=true. + #x1 #x2 #p1 elim p1 normalize // #dir #tl #IH #p2 cases x2 normalize + [ #n *) + theorem update_correct2: ∀A,v,p1,p2,k,t. - admissible t (reverse … p2 @ p1) = true → + admissible t (p2 @ reverse … p1) = true → update A v k p1 〈t,p2〉 = update … v k [] 〈t,reverse … p1 @ p2〉. #A #v #p1 elim p1 normalize // #dir #ptl #IH #p2 #k #t cases dir normalize nodelta cases t normalize nodelta [1,3: #n >admissible_leaf_cons #abs destruct -|*: #x1 #x2 change with (reverse ? (?::ptl)) in match (rev_append ???); >reverse_cons - >associative_append #H normalize >IH // - - normalize change with (reverse ? (true::ptl)) in match (rev_append bool ptl [true]); -[>(reverse_cons … true ptl) | >(reverse_cons … false ptl)] -[ >(associative_append ??[?]) - - +|*: #x1 #x2 #H >IH // >rev_append_cons >(?:admissible ? p2 = true) try % +