Results 1 
3 of
3
Higherorder Annotated Terms for Proof Search
 THEOREM PROVING IN HIGHER ORDER LOGICS: 9TH INTERNATIONAL CONFERENCE, TPHOLSâ€™96
, 1996
"... A notion of embedding appropriate to higherorder syntax is described. This provides a representation of annotated formulae in terms of the difference between pairs of formulae. We define substitution and unification for such annotated terms. Using this representation of annotated terms, the proof s ..."
Abstract

Cited by 20 (3 self)
 Add to MetaCart
A notion of embedding appropriate to higherorder syntax is described. This provides a representation of annotated formulae in terms of the difference between pairs of formulae. We define substitution and unification for such annotated terms. Using this representation of annotated terms, the proof search guidance technique of rippling can be extended to higherorder theorems. We illustrate this by several examples based on an implementation of these ideas in Prolog.
A Generic Approach To Program Extraction
"... over "sobj"  representation of a sequence of formulae *) fun abssobj t = Abs("sobj", Type("sobj",[]), t); (*Representation of empty sequence*) val Sempty = abssobj (Bound 0); fun seqobjtr(Const("@SeqId",)$id) = id  seqobjtr(Const("@SeqVar",)$id) = id  seqobjtr(Const("@Proof",dummyT)$p) ..."
Abstract
 Add to MetaCart
over "sobj"  representation of a sequence of formulae *) fun abssobj t = Abs("sobj", Type("sobj",[]), t); (*Representation of empty sequence*) val Sempty = abssobj (Bound 0); fun seqobjtr(Const("@SeqId",)$id) = id  seqobjtr(Const("@SeqVar",)$id) = id  seqobjtr(Const("@Proof",dummyT)$p) = (Const("Proof",dummyT)$p)  seqobjtr(fm) = Const("Seqof",dummyT)$fm; fun seqtr($obj$seq) = seqobjtr(obj)$seqtr(seq)  seqtr() = Bound 0; fun seqtr1(Const("@MtSeq",)) = Sempty  seqtr1(seq) = abssobj(seqtr seq); fun truetr[s1,s2] = Const("Trueprop",dummyT)$seqtr1 s1$seqtr1 s2; 9.3. CONCLUSION 91 fun seqobjtr'(Const("Seqof",)$fm) = fm  seqobjtr'(Const("Proof",dummyT)$p) = Const("@Proof",dummyT)$p  seqobjtr'(id) = Const("@SeqId",dummyT)$id; fun seqtr'(obj$sq,C) = let val sq' = case sq of Bound 0 =? Const("@MtSeqCont",dummyT)  =? seqtr'(sq,Const("@SeqCont",dummyT)) in C $ seqobjtr' obj $ sq' end; fun seqtr1'(Bound 0) = Const("@MtSeq",dummyT)  seqtr1' s = seq...