Uni notes pvs

From Ghoulwiki
Revision as of 23:46, 18 May 2007 by Ghoulsblade (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
blatt 3 : (lemma "trans")
(skolem 1 (a b c e))
(prop) : fertig 


(induct l) FOR skolem
(induct-and-simplify l) FOR skolem
(measure-induct+ "lenght(l)" l)
(name-replace name formular)
(inst? -3)  instanzierung automatisch suchen
(undo)y = tab+u
(delete 2 3) : ziele 2 und 3 löschen
(expand "occ" 1 1) : erstes vorkommen von okk in  1 auspacken !!!
(use lemma_name) : versucht lemma gleich zu instanzieren

z.b. (use sort_induct) , induktionsschema verwenden

"let (u,v)" : mit (beta-1) splitten 


nach expand  oder (lemma + inst) immer mal grind probieren...


C-cc : abbrechen
(restore) : zum vorigen stand zurückgehen !!!!

blatt7 :   induktionsschema als lemma instanzieren, und dann inst? für andere und dann grind
tccs 2 (über split): (lemma "split1") (grind)
tccs 3 (über split) : (induct-and-simplify l)
tccs (merge) : (lemma "merge-induct") (inst?) (split -1) (grind) , (falsches goal löschen mit delete),

occ(...,merge(...)) = occ(...)  : (expand merge) (lift-if) (split) (grind,grind) fall : beide listen nicht null : (skolem,flatten) (inst alles mit allgemeinem z) (expand merge in goal),

=== tcc's beweisen ===

C-cpt : status der tccs anzeigen
M-x show-tccs
C-cpp in show-tccs bei unfinished obligations


prelude.pvs : einige lemmas....
list_adt.pvs : listen lemmas....


I,J : [D -> boolean]  
% 2 teilmengen-funktionen



  idealI : AXIOM 

FORALL (a,b:D) : I(b) AND a <= b IMPLIES I(a)


 idealJ : AXIOM 

FORALL (a,b:D) : J(b) AND a <= b IMPLIES J(a)


 intersect(P,Q:[D->boolean]) : [D->boolean]

= LAMBDA (d:D) : P(d) AND Q(d)

% lambda : funtkion

% baut funktion zusammen, die zuerst P(d) aufruft, und dann das ergebnis AND verknüpft mit dem ergebnis Q(d)


 aufg4 : THEOREM  

FORALL (a,b:D) intersect(I,J)(b) AND a <= b IMPLIES intersect(I,J)(a)


zu Ü blatt 4 :

Spass :


befehl : SPASS datei.in


in pränex form bringen : -> durch /\ und \/ ersetzten,

klauseln(literale-disjunktion)

klauselmengen(klausel-konjunktion)


Ex aussen(links) : konstante einführen

Ex innen : funktion, die von allen vorherigen(äussereren) abhängt



TCCs ("type checking conditions") sind Formeln, die sich aus der Typüberprüfung ergeben. Sie müssen auch separat bewiesen werden, allerdings oft voll-automatisch.

Bsp:

 IF FORALL(n:nat): EXISTS(p,q:nat): prime(p) AND prime(q) AND p+q = n+4
    THEN 1 ELSE 0.5 
 ENDIF : nat

M-x show-tccs

M-x tcp

 "type check proof"  Versuche alle tccs zu automatisch zu beweisen.