Deontic logic in AGISystem2 handles normative reasoning: what is permitted, obligatory, or forbidden. These concepts are encoded in the axiological dimensions (256-383), allowing the system to reason about rules, policies, and ethical constraints geometrically.

Deontic Space (2D projection) deontic dim 1 → FORBIDDEN dims < -64 PERMITTED dims > +64 Neutral -64 to +64 Murder Free Speech Jaywalking Deontic Operators PERMITS(X, Y) → deontic dims > +64 PROHIBITS(X, Y) → deontic dims < -64 OBLIGATES(X, Y) → deontic dims > +100 Sys2DSL Examples ASSERT Law PERMITS FreeSpeech ASSERT Law PROHIBITS Murder ASSERT Law OBLIGATES TaxFiling ASK "Murder PERMITTED?" → FALSE Deontic Conflict Detection If X is both PERMITTED and PROHIBITED: → ValidationEngine raises DEONTIC_CONFLICT Resolution: priority rules, context layers

Deontic status is determined by axiological dimension values: strongly negative (< -64) means forbidden, strongly positive (> +64) means permitted, and very positive (> +100) means obligatory. The ValidationEngine detects conflicts when the same concept has contradictory deontic values.

Deontic Operators

OperatorMeaningDimension Range
PERMITS Action is allowed deontic > +64
PROHIBITS Action is forbidden deontic < -64
OBLIGATES Action is required deontic > +100
NEUTRAL No normative status -64 ≤ deontic ≤ +64

Logical Relationships

Standard deontic logic relationships are enforced:

# Obligatory implies permitted
OBLIGATES(X, Y) → PERMITS(X, Y)

# Forbidden is not-permitted
PROHIBITS(X, Y) ↔ ¬PERMITS(X, Y)

# Query deontic status
ASK "Action PERMITTED_BY Law?"
ASK "Action OBLIGATORY_UNDER Contract?"

Context-Dependent Norms

Use theory layers to model context-dependent norms:

# Base layer: general law
ASSERT Law PROHIBITS Speeding

# Context layer: emergency
THEORY_PUSH name="emergency"
ASSERT EmergencyLaw PERMITS Speeding WHEN Ambulance
THEORY_POP

# Different results based on active layer
ASK "Ambulance Speeding PERMITTED?"  # Depends on layer

Conflict Resolution

When norms conflict, the system uses priority rules:

  1. Layer priority – Higher layers override lower layers
  2. Specificity – More specific norms override general ones
  3. Recency – Later assertions take precedence
  4. Explicit priority – Use PRIORITY metadata on relations

Implementation

// Check if action is permitted
const permitted = reasoner.checkDeontic(action, context, "PERMITTED");
// Returns: { status: true/false, confidence: 0.95, source: "Law#42" }

// Find all obligations
const obligations = reasoner.findByDeontic("OBLIGATORY", context);
// Returns: [{ concept: "TaxFiling", source: "TaxLaw" }, ...]

// Detect conflicts
const conflicts = validationEngine.findDeonticConflicts(theory);
// Returns: [{ concept: "X", status1: "PERMITTED", status2: "PROHIBITED" }]

Related Documentation