680 likes | 848 Views
CondLean 2.0: a Theorem Prover for standard Conditional Logics. Nicola Olivetti – Gian Luca Pozzato. Dipartimento di Informatica - Università degli studi di Torino. Outline. Brief introduction of Conditional Logics Sequent calculi SeqS for some standard conditional logics
E N D
CondLean 2.0: a Theorem Prover for standard Conditional Logics Nicola Olivetti – Gian Luca Pozzato Dipartimento di Informatica - Università degli studi di Torino
Outline • Brief introduction of Conditional Logics • Sequent calculi SeqS for some standard conditional logics • List of results, in order to obtain a decision procedure for conditional logics and the reformulation BSeqS • CondLean 2.0: a SICStus Prolog implementation of sequent calculi BSeqS • Future work and references
1 Conditional logics
Conditional logics • Conditional logics have a long history • Recently, they have been used in some branches of artificial intelligence, such as: • non-monotonic reasoning (for example, prototypical reasoning and default reasoning); • belief revision; • deductive databases; • representation of counterfactuals.
Conditional logics Syntax • Conditional logic is an extension of classical logic by the conditional operator. • We consider a language L over a set ATM of propositional variables. Formulas of L are obtained applying the classical connectives and the conditional operator to the propositional variables.
Conditional logics Semantics • We consider the selection function semantics; the model is a triple:
Conditional logics Semantics • We consider the selection function semantics; the model is a triple: < W, f, [ ] >
Conditional logics Semantics • We consider the selection function semantics; the model is a triple: < W, f, [ ] > - W is a non-empty set of items called worlds;
Conditional logics Semantics • We consider the selection function semantics; the model is a triple: < W, f, [ ] > - W is a non-empty set of items called worlds; - f is a function f: W x 2W 2W , called the selection function;
Conditional logics Semantics • We consider the selection function semantics; the model is a triple: < W, f, [ ] > - W is a non-empty set of items called worlds; - f is a function f: W x 2W 2W , called the selection function; - [ ] is an evaluation function [ ] : ATM 2W.
Conditional logics Semantics • The selection function f (w, [A]) selects the worlds “closest”to w given the information A.
Conditional logics Semantics • [ ] assigns to an atomic formula P the set of worlds where P is true; [ ] is also extended to complex formulas as follows : • [ ] = • [ A B ] = (W - [ A ]) [ B ] • [ A B ] = {w W | f (w, [ A ]) [ B ]} • A conditional formula A B is true in a world w if B is true in all the worlds “closest” to w given the information A.
Conditional logics Semantics • We say that a formula A is valid in a model Mif [ A ] = W. A formula A is valid if it is valid in every model M.
Conditional logics System CK • The semantics above characterizesthe minimal normal conditional logic CK, which is axiomatized as follows:
Conditional logics - System CK All the tautologies of the classical propositional logic are CK axioms; modus ponens: RCEA: RCK: A A B B A B (A C) (B C) (A1 A2 … An) B (C A1 C A2 … C An) (C B)
Conditional logics Systems CK{+MP}{+ID} With some properties of the selection function, we have the following extensions: System Axiom Selection function property
Conditional logics Systems CK{+MP}{+ID} With some properties of the selection function, we have the following extensions: System Axiom Selection function property CK+ID f (x, [ A ]) [ A ] A A
Conditional logics Systems CK{+MP}{+ID} With some properties of the selection function, we have the following extensions: System Axiom Selection function property CK+ID f (x, [ A ]) [ A ] A A CK+MP w [ A ] w f (w, [ A ]) (A B) (A B)
Conditional logics Systems CK{+MP}{+ID} With some properties of the selection function, we have the following extensions: System Axiom Selection function property CK+ID f (x, [ A ]) [ A ] A A CK+MP w [ A ] w f (w, [ A ]) (A B) (A B) w [ A ] w f (w, [ A ]) (A B) (A B) CK+MP+ID f (x, [ A ]) [ A ] A A
2 Sequent Calculi SeqS
Sequent Calculi SeqS • In [OlivettiSchwind01] sequent calculi for conditional logics CK{+MP}{+ID} called SeqS, where S={CK, ID, MP, ID+MP}, are introduced. • These calculi use transition formulas and labels, in a similar way to [Viganò00] and [Gabbay96].
Sequent Calculi SeqS • A sequent is a pair < , >, written as usual as ; • and are multisets of formulas; we have two kinds of formulas:
Sequent Calculi SeqS • A sequent is a pair < , >, written as usual as ; • and are multisets of formulas; we have two kinds of formulas: Labelled formulas, like x: A;
Sequent Calculi SeqS • A sequent is a pair < , >, written as usual as ; • and are multisets of formulas; we have two kinds of formulas: transition formulas, like . Labelled formulas, like x: A; A x y
Sequent Calculi SeqS • A sequent is a pair < , >, written as usual as ; • and are multisets of formulas; we have two kinds of formulas: transition formulas, like . Labelled formulas, like x: A; A x y • A labelled formula x: A represents that the formula Ais true in the world x.
Sequent Calculi SeqS • A sequent is a pair < , >, written as usual as ; • and are multisets of formulas; we have two kinds of formulas: transition formulas, like . Labelled formulas, like x: A; A x y • A labelled formula x: A represents that the formula Ais true in the world x. A • A transition formula represents that y f ( x, [ A ] ). x y
Sequent Calculi SeqS Theorem (soundness and completeness of SeqS): is valid iff it is derivable in SeqS.
3 How to obtain a decision procedure
How to obtain a decision procedure • SeqS calculi have the following contraction rules: , F, F , F, F (ContrR) (ContrL) , F , F
How to obtain a decision procedure • SeqS calculi have the following contraction rules: , F, F , F, F (ContrR) (ContrL) , F , F • In backward proof search, the contraction rules add a formula in the premise; all the other rules are analytic. • In order to obtain a decision procedure, it is essential to control the application of the contraction rules.
How to obtain a decision procedure In [OlivettiSchwind01] it is shown that: the contraction rules can be eliminated in SeqCK SeqCK is complete without (ContrL) e (ContrR); so we have a decision procedure for CK (all the SeqCK’s rules are analytic).
How to obtain a decision procedure • In [Pozzato03]it is shown that:
How to obtain a decision procedure • In [Pozzato03]it is shown that: 1. SeqID is complete without the contraction rules.
How to obtain a decision procedure • In [Pozzato03]it is shown that: 1. SeqID is complete without the contraction rules. 2. SeqMP and SeqID+MP are NOT complete without the contraction rules. • This analysis is inspired by the work made by Luca Viganò for modal logic T [Viganò00]
How to obtain a decision procedure • One can control the application of the contraction rules as follows:
How to obtain a decision procedure • One can control the application of the contraction rules as follows: 2.1. SeqMP and SeqID+MP are complete without the (ContrR) rule.
How to obtain a decision procedure • One can control the application of the contraction rules as follows: 2.1. SeqMP and SeqID+MP are complete without the (ContrR) rule. 2.2. In SeqMP and SeqID+MP one needs to apply the (ContrL) rule at most one time on every conditional formula x: A B in every branch of the proof tree. • Here are the BSeqS calculi presented in [OlivettiPozzatoSchwind04]:
How to obtain a decision procedure • The (L) rule is “split” in three rules, to keep into account of the necessary application of (ContrL).
How to obtain a decision procedure • The (L) rule is “split” in three rules, to keep into account of the necessary application of (ContrL). 1. The first rule decomposes the principal formula x: A B adding a copy of the formula in the multiset CondContr: If x: A B K K { x: A B } | CondContr { x: A B } | , y: B A x y K { x: A B } | CondContr { x: A B } | , (L)1 K | CondContr | , x: A B
How to obtain a decision procedure • The (L) rule is “split” in three rules, to keep into account of the necessary application of (ContrL). 1. The second rule is applied if x: A Bhas already been contracted in that branch (i.e. belongs to K); it decomposes the principal formula x: A B without adding any copy of it: If x: A B K K | CondContr | , y: B A x y K | CondContr | , (L)2 K | CondContr | , x: A B
How to obtain a decision procedure • The (L) rule is “split” in three rules, to keep into account of the necessary application of (ContrL). 2. The third rule decomposes a contracted formulax: A B in CondContr, without adding a copy of it: A x y K { x: A B } | CondContr | K { x: A B } | CondContr | , y: B (L)3 K { x: A B } | CondContr { x: A B } |
How to obtain a decision procedure • We have improved SeqS calculi presented in [OlivettiPozzato03], where the rule (L) was split in two rules; • Reduced number of application of (implicit) contraction in each branch: better performances • Improved version of the graphical user interface • Many features inherited from CondLean
4 Design of CondLean 2.0
Design of CondLean 2.0 • CondLean 2.0 is a Prolog implementation of BSeqS calculi; it is written in SICStus Prolog and it is inspired by leanTAP, introduced by Beckert and Posegga in [BeckertPosegga96]. • The program comprises a set of clauses, each one of them represents a sequent rule or axiom; the proof search is provided for free by the mere depth-first search mechanism of Prolog.
Design of CondLean 2.0 • CondLean 2.0 is a Prolog implementation of BSeqS calculi; it is written in SICStus Prolog and it is inspired by leanTAP, introduced by Beckert and Posegga in [BeckertPosegga96]. • The program comprises a set of clauses, each one of them represents a sequent rule or axiom; the proof search is provided for free by the mere depth-first search mechanism of Prolog. • The sequent calculi are implemented by the predicate • prove(Sigma, Delta, Labels) • This predicate succeeds if and only if the sequent is derivable in SeqS, where Sigma e Delta are the lists representing multisets and , and Labels is the list of labels introduced in that branch .
Design of CondLean 2.0 • Each clause of predicate prove implements one axiom or rule of BSeqS. • The clauses of prove are ordered to postpone the application of the branching rules.
Design of CondLean 2.0 • Each clause of predicate prove implements one axiom or rule of BSeqS. • The clauses of prove are ordered to postpone the application of the branching rules. Example 1: clause implementing (AX) axiom; both the antecedent and the consequent contain the same complex formula F: prove([_,_,ComplexSigma],[_,_,ComplexDelta],_):- member(F,ComplexSigma), member(F,ComplexDelta),!. (AX) , F , F
Design of CondLean 2.0 Example 2: clause implementing (R): prove([LitSigma,TransSigma,ComplexSigma], A , , y: B x y (R) , x: A B [LitDelta,TransDelta,ComplexDelta],Labels): select([X,A => B], ComplexDelta,ResComplexDelta),!, createLabels(Y,Labels), put([Y,B], LitDelta, ResComplexDelta, NewLitDelta, NewComplexDelta), prove([LitSigma, [[X,A,Y]|TransSigma], ComplexSigma],[NewLitDelta,TransDelta, NewComplexDelta],[Y|Labels]).
Design of CondLean 2.0 • For systems BSeqMP and BSeqID+MP the predicate prove has two additional arguments: • prove(K, CondContr, Sigma, Delta, Labels) • K and CondContr are the auxiliary sets of BSeqS calculi, used to control the application of (L)
Design of CondLean 2.0 Example 3: clause implementing (L)1: K { x: A B } | CondContr { x: A B } | , y: B A x y K { x: A B } | CondContr { x: A B } | , (L)1 K | CondContr | , x: A B prove(K,CondContr,[LS,TS,CS],[LD,TD,CD],Labels):- select([X,A => B],CS,ResCS), \+member([X,A => B],K), select(Y,Labels), put([Y,B],LS,ResCS,NewLS,NewCS), prove([[X,A => B]|K],[[X,A => B]|CondContr], [NewLS,TS,NewCS],[LD,TD,CD],Labels), prove([[X,A => B]|K],[[X,A => B]|CondContr], [LS,TS,ResCS],[LD,[[X,A,Y]|TD],CD],Labels).