Upload
damian-rich
View
224
Download
0
Embed Size (px)
DESCRIPTION
Introduction A many-sorted first-order language with equality Includes: –Sorts: FLUENT < STATE, ACTION, SIT –Functions: –Predicate
Citation preview
CHR + D + A + O Operational Semantics
in Fluent CalculusDecember, 2007
SimpleFluent Calculus (SFC)
Introduction
• A many-sorted first-order language with equality• Includes:
– Sorts: FLUENT < STATE, ACTION, SIT– Functions:
– Predicate
Abbreviations
Foundational Axioms (Fstate)
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 (Fstate)• Possibly further domain-specific axioms
Pure State Formula
It may contain then:• Hold(f,z), where f is a fluent and z is a state• Any domain predicates referencing only the domain sorts
State Constraints
• Ex:
Action Precondition Axiom
• Ex:
State Update Axiom
• Ex:
Question: Is it possible to change a previously “unknown” number of fluents at once? “Delta” is a pure state formula, so it can’t be used to generate the needed fluents. V+ and V- are just “fluent sets”... Can I use a function to generate these fluent sets?
CHR Operational Semantics in Fluent Calculus
Domain Sorts (1/2)
• RULE– Ex: gcd(0) <=> true | true.
• RULE_ID• ATOM < CONSTRAINT
– p(1,2,7)• UDC < ATOM• BIC < ATOM• EQUATION < BIC
Domain Sorts (2/2)• FORMULA < CONSTRAINT• CONJUNCTION < FORMULA• EQ_CONJ < CONJUNCTION• BIC_CONJ < CONJUNCTION• UDC_CONJ < CONJUNCTION
“Domain” Sorts
• BICS_STATE < STATE
• UDCS_STATE < STATE
• GOAL_STATE < STATE
Question: Can I specialize the reserved sorts?Are the specialized ones considered “Domain” sorts?
Domain Functions (1/5)
• S0 : SIT– The initial situation
• InGoal : CONSTRAINT FLUENT– The constraint x is in G
• InUdc : UDC FLUENT– The user defined constraint x is in U
• InBic : BIC FLUENT– The built-in constraint x is in B
HBUG ,,,G – GoalU – User Defined Constraints StoreB – Built-in Constraint StoreH – Propagation History0
Domain Functions (2/5)
• RuleId : RULE RULE_ID– Returns an unique identifier for the passed rule
• InPropHistory : RULE_ID x UDC_CONJ x EQ_CONJ FLUENT– f = InPropHistory(rule, constraints, equations)– The ‘rule’ was executed with the conjunction of
matching ‘constraints’ generating the conjunction of ‘equations’
Domain Functions (3/5)
• MakeGoal : CONJUNCTION GOAL_STATE– Makes an state containing an InGoal(c) fluent for each
constraint c in the conjunction• MakeBICS : BIC_CONJ BICS_STATE
– Makes an state containing an InBic(c) fluent for each constraint c in the conjunction
• MakeUDCS : UDC_CONJ UDCS_STATE– Makes an state containing an InUdc(c) fluent for each
constraint c in the conjunction
Domain Functions (4/5)
• “,” : CONSTRAINT x CONSTRAINT CONJUNCTION
: CONSTRAINT x CONJUNCTION• true : BIC• false : BIC
Domain Functions (5/5)
• SimplifRule : UDC_CONJ x BIC_CONJ x CONJUNCTION RULE
• PropagRule : UDC_CONJ x BIC_CONJ x CONJUNCTION RULE
• SimpagRule : UDC_CONJ x UDC_CONJ x BIC_CONJ x CONJUNCTION RULE
• These functions make up a rule from its parts
Domain Predicates (1/3)
• InQuery : CONSTRAINT– The constraint is in the initial goal (query)
• DisjointVariables : RULE x CONSTRAINT– DisjointVariables(rule, constraint)– No variable in ‘rule’ appears in ‘constraint’
Domain Predicates (2/3)
• Matching : UDC_CONJ x UDC_CONJ x EQ_CONJ– Matching(head, matching, equations)– The conjunction of udc constraints ‘head’
matches the conj. of udc constraints ‘matching’ generating the conj. of matching equations ‘equations’
• Matching(“p(X) , q(Y)”,“p(A), p(2)”,“X=A, Y=2”)• Matching(“p(X) , q(Y)”,“p(A), p(2)”, “X=2, Y=A”)
Domain Predicates (3/3)• checkEntails : BIC_CONJ x EQ_CONJ x
BIC_CONJ– checkEntails(bics, head, guard)– CT |= bics x (head ^ guard)
Domain Actions
• Solve: BIC ACTION• Introduce: UDC ACTION• Simplify: RULE x UDC_CONJ x EQ_CONJ
ACTION• Propagate: RULE x UDC_CONJ x EQ_CONJ
ACTION• Simpagate: RULE x UDC_CONJ x
UDC_CONJ x EQ_CONJ ACTION
Abbreviations (1/2)
These expressions cannot be defined as domain predicates, sincea pure state formula forces all predicates to refer just to domain sorts.
Abbreviations (2/2)
Initial State (State Constraint)
CHR Transitions
Introduce
g – goal being introduced (UDC)z – state (STATE)s – situation (SIT)
Solve
g – goal being solved (BIC)z – state (STATE)s – situation (SIT)
Simplify
hR – Rule Head (UDC_CONJ)g – Rule guard (BIC_CONJ)b – Rule body (UDC_CONJ)z – state (STATE)m – matching constraints (UDC_CONJ)e – matching equations (EQ_CONJ)bics – the BIC store as a conjunction of BICS (BIC_CONJ)
hR – Rule Head (UDC_CONJ)g – Rule guard (BIC_CONJ)b – Rule body (UDC_CONJ)s – situation (SIT)m – matching constraints (UDC_CONJ)e – matching equations (EQ_CONJ)
Simplify
Propagate
hk – Rule Head (UDC_CONJ)g – Rule guard (BIC_CONJ)b – Rule body (UDC_CONJ)z – state (STATE)m – matching constraints (UDC_CONJ)e – matching equations (EQ_CONJ)
Propagate
hk – Rule Head (UDC_CONJ)g – Rule guard (BIC_CONJ)b – Rule body (UDC_CONJ)s – situation (SIT)m – matching constraints (UDC_CONJ)e – matching equations (EQ_CONJ)
Simpagate
hk – Rule Head Keep (UDC_CONJ)hR – Rule Head Remove (UDC_CONJ)g – Rule guard (BIC_CONJ)b – Rule body (UDC_CONJ)z – state (STATE)mk – matching head keep constraints (UDC_CONJ)mR – matching head remove constraints (UDC_CONJ)e – matching equations (EQ_CONJ)
Simpagate
hk – Rule Head Keep (UDC_CONJ)hR – Rule Head Remove (UDC_CONJ)g – Rule guard (BIC_CONJ)b – Rule body (UDC_CONJ)s – situation (SIT)mk – matching head keep constraints (UDC_CONJ)mR – matching head remove constraints (UDC_CONJ)e – matching equations (EQ_CONJ)
CHR + DOperational Semantics in Fluent
Calculus
Nondeterminism in Fluent Calculus
• Simple disjunctive state update axiom
– θn is a first-order formula without terms of any reserved sort
Domain Sorts
• DISJUNCTION < FORMULA• CHOICE < DISJUNCTION
– ((a11, ... , a1n) ; ... ; (am1,... ,amn)), where all aij are ATOM’s
Domain Functions
• “;” : CONSTRAINT x CONSTRAINT DISJUNCTION
: CONSTRAINT x FORMULA
Domain Actions
• Split : CHOICE ACTION
Actions
Split
c – choice being splitted (CHOICE)bi – a component of the choice (CONJUNCTION)z – state (STATE)s – situation (SIT)
CHR + D + AOperational Semantics in Fluent
Calculus
Domain Sorts
• JUSTIFICATION < CONJUNCTION– “a1, ... , an”, where all ai are atoms
Domain Functions (1/3)
• Just : CONSTRAINT x JUSTIFICATION FLUENT– Just(c,j)– The constraint c is justified by j
• MakeJust : CONJUNCTION x JUSTIFICATION STATE– Makes an state containing an Just(c,j) fluent for each
constraint c in the conjunction
JHBUG ,,,,J - Justifications
Domain Functions (2/3)• SelectJust : JUSTIFICATION x STATE
STATE– SelectJust(j,z)– Selects the fluents of the form “Just(c,jc)” in z such
that JustifiedBy(c, j, z)• SelectConstraint : JUSTIFICATION x STATE
STATE– SelectConstraint(j,z)– Selects the fluents of the form “InUdc(c)”, “InBic(c)”
or “InGoal(c)” in z such that JustifiedBy(c, j, z)
Domain Functions (3/3)• SelectPropHistory : JUSTIFICATION x
STATE STATE– SelectPropHistory(j,z)– Selects the fluents of the form
“PropHistory(rule,matched,equations)” in z such that for some constraint c in ‘matched’, JustifiedBy(c, j, z)
Abbreviations
Domain Actions
• AddConstraint : CONSTRAINT x JUSTIFICATION ACTION
• RemoveConstraint : JUSTIFICATION ACTION
Initial State
State Constraints
Actions
AddConstraint
RemoveConstraint
Simpagate
j – the justification for the entire rule head
Split / Choice