Action Language C+
- Action Language C+ is an action description language based on nonmonotonic causal theories that models dynamic domains with multi-valued fluents and explicit causal laws.
- The definite fragment of C+ is reduced to Answer Set Programming, enabling efficient reasoning for tasks such as prediction, planning, and postdiction.
- C+ integrates causal-law syntax with modular translations to ASP and SMT, offering insights into both logical foundations and practical computational performance.
Searching arXiv for recent and foundational papers on Action Language C+ and related systems/languages. Action language C+, pronounced “C plus,” is an action description language based on nonmonotonic causal theories and intended for representing transition systems: possible states of a dynamic domain and the transitions induced by actions. It belongs to the Gelfond–Lifschitz family of high-level action languages, but is distinguished by multi-valued fluents and actions, an explicit separation between regular and statically determined fluents, and a causal-law syntax that can express direct effects, indirect effects, defaults, executability conditions, and concurrent actions. In later work, its definite fragment was reduced to Answer Set Programming, while first-order variants were given ASPMT semantics and extended to hybrid systems via SMT and SMT modulo ODE (Eiter et al., 2012, Babb et al., 10 May 2026, Lee et al., 2017).
1. Historical position and modeling scope
C+ was originally propositional and defined in terms of nonmonotonic causal theories. In subsequent developments it was treated as a high-level front end for logic programming and, in first-order form, as an action language with ASPMT semantics. Within the family of action languages, it is presented as a richer successor of , with multi-valued fluents and actions, an explicit distinction between regular and statically determined fluents, fluent dynamic laws, action dynamic laws, and elaboration-tolerant constructs such as defeasible causal laws and action attributes (Babb et al., 22 Jun 2025, Lee et al., 2017).
The modeling target of C+ is a dynamic domain viewed as a transition system. A description specifies possible states, actions that may occur, and the conditions under which actions change the world. This is the same general “system description transition system ASP program” methodology later emphasized in modular descendants such as ALM, but C+ remains centered on causal laws rather than on module hierarchies or explicit theory/structure separation (Inclezan et al., 2015).
A practical boundary is the definite fragment. Cplus2ASP v2 implements exactly the definite fragment of C+, and its input language is fully compatible with the language of the Causal Calculator Version 2. In that setting, the implemented translation coincides with the official C+ semantics, and the resulting system performs reasoning tasks such as prediction, planning, and postdiction by reduction to ASP solving (Babb et al., 10 May 2026).
2. Signature, ontology, and causal-law syntax
C+ is formulated over multi-valued propositional signatures. A signature consists of constants , each with a finite domain . Constants are partitioned into fluent constants and action constants; fluent constants are further divided into simple, or inertial, fluents and statically determined fluents. Atoms have the form , read as “the value of is ,” and formulas are propositional combinations of such atoms (Babb et al., 10 May 2026).
The language uses three kinds of causal laws. A static law has the form
where 0 and 1 are fluent formulas. These function as state constraints: if 2 holds in a state, the state must satisfy 3. An action dynamic law has the same surface shape, but its head 4 is an action formula; such laws express causal dependencies among action-related atoms. A fluent dynamic law has the form
5
where 6 and 7 are fluent formulas, 8 is any formula, and 9 does not contain statically determined fluents. Intuitively, 0 refers to the previous step, 1 to the current step, and 2 is caused in the current step (Babb et al., 10 May 2026).
The surface language also includes widely used abbreviations. In particular, executability conditions are expressed as nonexecutability laws, and inertia is introduced by shorthand declarations for simple fluents. In the probabilistic presentation of C+, these are described through dynamic causal laws and execution denials: a law with head 3 functions as a precondition failure, and an “inertial 4” declaration abbreviates the set of dynamic laws that persist the value of the simple fluent 5 unless another cause changes it (Eiter et al., 2012).
A C+ action description is called definite when, in every causal law, the head 6 is either an atom or 7. This restriction removes disjunctive and nested heads, simplifies the semantics, and is precisely the fragment targeted by CCalc v2 and Cplus2ASP v2 (Babb et al., 10 May 2026).
3. Semantics: causal theories, stable models, and transition systems
At its original semantic core, C+ relies on nonmonotonic causal theories. A causal rule has the form
8
read as “there is a cause for 9 if 0 holds.” For a causal theory 1 and an interpretation 2, the reduct 3 retains the heads of those rules whose bodies are true in 4. An interpretation 5 is a model of 6 iff 7 is the unique model of the propositional theory 8. This unique-model condition is the nonmonotonic selection principle that underlies C+ models of states and transitions (Eiter et al., 2012).
For the definite fragment, a more operational stable-model account is available. A multi-valued interpretation maps each constant 9 to exactly one value in 0. Given a formula 1 and interpretation 2, the reduct 3 is obtained by replacing each maximal subformula not satisfied by 4 with 5. Then 6 is a multi-valued stable model of 7 if it is the unique interpretation of the signature that satisfies 8. This semantics is analogous to stable-model reasoning but uses uniqueness of multi-valued assignments rather than subset-minimization on Boolean atoms (Babb et al., 10 May 2026).
For a definite action description 9 and horizon 0, Cplus2ASP constructs a time-indexed theory 1. Static laws and action dynamic laws are instantiated at each time point as
2
while fluent dynamic laws are instantiated across adjacent time points as
3
For every simple fluent constant and every domain value, initial choice formulas are added at time 4. The stable models of the resulting multi-valued theory correspond to trajectories
5
of the transition system induced by 6 (Babb et al., 10 May 2026).
A crucial technical step is the reduction from multi-valued formulas to ordinary propositional stable models. Each atom 7 is replaced by a Boolean atom 8, and two families of constraints are added: uniqueness constraints
9
and an existence constraint
0
The key theorem states that, under these uniqueness-and-existence constraints, multi-valued stable models correspond one-to-one with propositional stable models of the translated theory. The paper explicitly notes that even for Boolean domains, the multi-valued stable-model semantics is not syntactically or semantically the same as ordinary propositional stable models; the reduction is therefore substantive rather than notational (Babb et al., 10 May 2026).
In first-order C+ modulo theories, the same time-stamping strategy is combined with a background theory 1, such as arithmetic over reals. States are interpretations of fluent signatures compatible with the static laws, and transitions are triples 2 satisfying the one-step action description under the ASPMT semantics. The stable models of the horizon-3 program correspond exactly to paths of the induced transition system (Lee et al., 2017).
4. Computational realization in ASP and SMT
Cplus2ASP v2 realizes definite C+ by orchestrating a tool chain consisting of cplus2asp.bin, f2lp, clingo, iclingo, and as2transition. In static mode, cplus2asp.bin parses CCalc-style input and produces first-order formulas with nested expressions; f2lp translates them into gringo-compatible ASP; clingo grounds and solves the program; and as2transition prints the resulting trajectories in time-indexed form. In incremental mode, the system instead translates the description into the input language of iclingo, exploiting incremental grounding and reuse of learned nogoods. The correctness of this execution is justified via the module theorem extended to programs with nested expressions, and the system supports external atoms by means of Lua calls, a user interactive mode, and extensible multi-modal translations for languages such as B and BC (Babb et al., 10 May 2026).
The incremental encoding follows the standard triple 4, with 5 as base program, 6 as cumulative program, and 7 as volatile query module. The correctness theorem states that, for any definite C+ description 8, horizon 9, and query formula 0, an interpretation 1 is a multi-valued stable model of
2
iff 3 is a stable model of the incrementally composed module 4. This theorem establishes that the trajectories computed by iclingo correspond exactly to C+ models satisfying the query at step 5 (Babb et al., 10 May 2026).
The same paper reports comparative benchmarks against CCalc v2, Cplus2ASP v1, and coala across Traffic World, Blocks World with action costs, the Spacecraft Integer domain, Towers of Hanoi, and Ferryman. Its summary claim is that incremental Cplus2ASP v2 is typically an order of magnitude faster than CCalc v2, significantly faster than Cplus2ASP v1, and roughly 6 faster than coala’s incremental mode in most benchmarks; the stated reasons are incremental grounding, reuse of learned conflict clauses and heuristics, and a more compact translation (Babb et al., 10 May 2026).
A distinct computational line extends first-order C+ to hybrid systems. In this setting, C+ is given ASPMT semantics, then compiled to SMT, and finally to SMT modulo ODE. The prototype system cplus2aspmt adds abbreviations such as rate declarations and invariant laws, allowing linear hybrid automata with convex invariants and also non-linear hybrid automata with non-convex invariants to be represented in C+ modulo ODE. The paper proves a 7 correspondence between the paths of a hybrid automaton and the paths of the transition system of the translated C+ action description, and uses dReal as the solver backend (Lee et al., 2017).
5. Relation to neighboring action languages
C+ is one member of a broader family of action languages that includes 8, 9, 0, 1, BC, BC+, and ALM. Relative to 2, C and C+ are presented as more flexible because inertia is not hard-wired for all fluents. Relative to 3, C+ is presented as a richer successor with multi-valued fluents and actions, action dynamic laws, defeasible causal laws, and action attributes (Babb et al., 22 Jun 2025).
ALM is explicitly positioned as a modular, ontology-oriented successor to earlier high-level action languages, including C and C+. It preserves the general methodology in which a high-level action language serves as a front end to logic programming, but introduces modules, module hierarchies, libraries, explicit sorts, action sorts, attributes, and a theory/structure split. At the same time, ALM is described as semantically closest to 4, not to C+, and the paper contrasts the inertia-oriented semantics of 5 with the causal-logic basis of 6 and, by extension, C+ (Inclezan et al., 2015).
BC+ is presented as a language that closes the gap between action languages and modern ASP. It is defined directly in terms of general stable-model semantics for propositional formulas, which allows choice rules, aggregates, and abstract constraint atoms to be treated as shorthands for formulas. In that framework, every definite C+ description can be embedded into BC+ by a translation 7 that inserts explicit double negation into the bodies of C+ laws: 8 The resulting transition system is identical to that of the original definite C+ description (Babb et al., 22 Jun 2025).
The same BC+ study also presents a semantic contrast. In a two-switch example, the BC+ encoding yields four transitions regarded as the expected ones, whereas the C+ version yields an additional transition justified by cyclic causal support. The paper attributes this difference to the double-negation treatment of bodies in the stable-model characterization of definite C+, as opposed to the direct minimal stable-model semantics used in BC+. A plausible implication is that recursive definitions and cyclic dependencies are a boundary case where C+ and BC+ differ not merely syntactically but semantically (Babb et al., 22 Jun 2025).
6. Reasoning tasks, exemplars, and limits of the formalism
C+ is used for prediction, planning, postdiction, and diagnosis. In Cplus2ASP, a domain is written in CCalc-style syntax with declarations of sorts, objects, constants, variables, and causal laws, while queries specify initial conditions, goals, and horizons. The Blocks World example uses an inertial fluent loc(block), an exogenous action move(block), and an action attribute destination(block), together with state constraints and nonexecutability conditions. A query file then constrains step 9, constrains maxstep, and imposes goal conditions at the final step; Cplus2ASP searches for a trajectory satisfying both (Babb et al., 10 May 2026).
The probabilistic extension 0, also written 1, generalizes C+ by adding context variables and context laws. Static and dynamic causal laws remain, but probabilities are attached to exogenous context assignments rather than replacing the underlying causal semantics. The semantics is given in terms of probabilistic transitions between sets of states, and histories are associated with belief states 2. This framework supports probabilistic versions of prediction, postdiction, and planning while preserving qualitative nondeterminism from C+ (Eiter et al., 2012).
A frequent misconception is to treat C+ itself as probabilistic or to conflate nondeterminism with probability. The 3 account makes the distinction explicit: ordinary C+ represents qualitative uncertainty through multiple possible states or transitions, whereas probabilities arise only after context variables and context laws are introduced (Eiter et al., 2012).
The principal implementation limit documented for Cplus2ASP v2 is that only the definite fragment is supported: heads of causal laws must be a single atom or 4. The system handles multi-valued and additive fluents, defined fluents, and CCalc syntactic constructs, but it does not support arbitrary recursion as in BC, and more complex nondeterministic effect laws outside the definite fragment are not covered by its translation. This suggests that, although C+ remains a central reference point for action-language design and ASP-based reasoning, some later formalisms were motivated precisely by the desire to relax these boundaries while preserving the transition-system perspective (Babb et al., 10 May 2026).