src/HOL/SMT/Examples/cert/z3_pair_01.proof
author boehmes
Tue, 20 Oct 2009 10:11:30 +0200
changeset 33010 39f73a59e855
permissions -rw-r--r--
added proof reconstructon for Z3, added certificates for simpler re-checking of proofs (no need to invoke external solvers), added examples and certificates for all examples, removed Unsynchronized.ref (in smt_normalize.ML)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33010
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     1
#2 := false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     2
decl uf_6 :: T2
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     3
#23 := uf_6
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     4
decl uf_4 :: T2
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     5
#19 := uf_4
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     6
#25 := (= uf_4 uf_6)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     7
decl uf_2 :: (-> T1 T2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     8
decl uf_1 :: (-> T2 T3 T1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     9
decl uf_5 :: T3
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    10
#20 := uf_5
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    11
#21 := (uf_1 uf_4 uf_5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    12
#22 := (uf_2 #21)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    13
#24 := (= #22 uf_6)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    14
#65 := [asserted]: #24
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    15
#143 := (= uf_4 #22)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    16
#11 := (:var 0 T3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    17
#10 := (:var 1 T2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    18
#12 := (uf_1 #10 #11)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    19
#567 := (pattern #12)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    20
#16 := (uf_2 #12)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    21
#58 := (= #10 #16)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    22
#574 := (forall (vars (?x4 T2) (?x5 T3)) (:pat #567) #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    23
#62 := (forall (vars (?x4 T2) (?x5 T3)) #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    24
#577 := (iff #62 #574)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    25
#575 := (iff #58 #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    26
#576 := [refl]: #575
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    27
#578 := [quant-intro #576]: #577
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    28
#71 := (~ #62 #62)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    29
#87 := (~ #58 #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    30
#88 := [refl]: #87
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    31
#72 := [nnf-pos #88]: #71
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    32
#17 := (= #16 #10)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    33
#18 := (forall (vars (?x4 T2) (?x5 T3)) #17)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    34
#63 := (iff #18 #62)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    35
#60 := (iff #17 #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    36
#61 := [rewrite]: #60
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    37
#64 := [quant-intro #61]: #63
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    38
#57 := [asserted]: #18
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    39
#67 := [mp #57 #64]: #62
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    40
#89 := [mp~ #67 #72]: #62
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    41
#579 := [mp #89 #578]: #574
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    42
#214 := (not #574)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    43
#551 := (or #214 #143)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    44
#553 := [quant-inst]: #551
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    45
#233 := [unit-resolution #553 #579]: #143
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    46
#235 := [trans #233 #65]: #25
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    47
#26 := (not #25)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    48
#66 := [asserted]: #26
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    49
[unit-resolution #66 #235]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    50
unsat