CHR Operational Semantics in Fluent Calculus (using Ramifications) November, 2007
Simple Fluent Calculus (SFC)
Introduction A many-sorted first-order language with equality Includes: –Sorts: FLUENT < STATE, ACTION, SIT –Functions: –Predicate
Abbreviations
Foundational Axioms (F state )
SFC Domain Axiomatization State Constraints Unique simple Action Precondition Axiom for each function symbol with range ACTION A set of State Update Axioms Foundational Axioms (F state ) Possibly further domain-specific axioms
Action Precondition Axiom Ex:
State Update Axiom Ex:
Ramifications in Fluent Calculus
Modeling Ramifications
Fluent Calculus with Ramifications Sorted second-order logic language Reserved Predicates: –Causes : STATE x STATE x STATE x STATE x STATE x STATE Causes(z1, e1+, e1-, z2, e2+, e2-) –If z1 is the result of positive effects e1+ and negative effects e1-, then an additional effect is caused which leads to z2 (now the result of positive and negative effects e2+ and e2-, resp.) –Ramify : STATE x STATE x STATE x STATE Ramify(z, e+, e-, z’) –z’ can be reached by iterated application of the underlying casual relation, starting in state z with momentum e+ and e-
Abbreviations
Foundational Axioms (Reflexive and Transitive Closure of Causes)
State Update Axiom with Ramifications
Causal Relations Axiomatization Relies on the assumption that the underlying Causes relation is completely specified
Fluent Calculus Domain Axiomatization with Ramifications State constraints Causal Relations axiomatization Unique action precondition axiom for each function symbol with range ACTION Set of state update axioms (possibly with ramifications) Foundational Axioms: Fstate and Framify Domain Specific Axioms
CHR Operational Semantics in Fluent Calculus
Domain Sorts CONSTRAINT < FLUENT UDC < CONSTRAINT BIC < CONSTRAINT EQUATION < BIC
Domain Predicates entails : STATE x Set(EQUATION) x Set(BIC) –entails(s, h, g) –CT |= s \exists x(h ^ g)
Domain Actions AddConstraint : CONSTRAINT ACTION
Example leq(X,X) true. leq(X,Y), leq(Y,X) X = Y. leq(X,Y), leq(Y,Z) ==> leq(X,Z).
Example leq(X,X) true. leq(X,Y), leq(Y,Z) ==> leq(X,Z).
Example leq(X,Y), leq(Y,Z) ==> leq(X,Z).
Example (Constraint Awakening)