babylon.engine.dialectics.volume_2

Capital Volume II dialectics — backward-compatibility re-export shim.

Deprecated since version Import: directly from the individual modules instead: babylon.engine.dialectics.circulation, babylon.engine.dialectics.turnover, etc.

class babylon.engine.dialectics.volume_2.CirculationDialectic(**data)[source]

Bases: Dialectic[CircuitState, EmptyPole]

Circuit of capital dialectic.

Pole A holds the CircuitState tracking Money, Productive, and Commodity capital. Motion law feeds inputs through advance_circuit.

Parameters:
model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

observe()[source]

Project circulation state for downstream dialectics.

Emits: - total_capital: M + P + C’ aggregate. - realized_money: money-capital = realized money from sales. - commodity_overhang: unsold commodity fraction.

Return type:

dict[str, Any]

Returns:

Base observation extended with circulation outputs.

step(inputs, world)[source]

Motion law T for the circuit of capital.

Parameters:
  • inputs (TickInputs) – Upstream outputs with elapsed_days, surplus_value, and optional profile_dict.

  • world (WorldView) – Read-only world context.

Return type:

CirculationDialectic

Returns:

New CirculationDialectic with updated circuit state.

sublate()[source]

Sublate to Realization Crisis if commodity overhang exceeds threshold.

Return type:

Dialectic[Any, Any] | None

Returns:

RealizationCrisisDialectic if overhanging, else None.

type_tag: str
id: UUID
pole_a: A
pole_b: B
weight: float
parent_id: UUID | None
tick_created: int
tick_updated: int
class babylon.engine.dialectics.volume_2.ConsumptionDialectic(**data)[source]

Bases: Dialectic[ProductiveConsumption, IndividualConsumption]

Productive ↔ Individual consumption (Grundrisse moment).

Weight semantics:

weight < 0 → productive consumption dominant (accumulation). weight > 0 → individual consumption dominant (reproduction).

Parameters:
model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

observe()[source]

Project consumption state for downstream dialectics.

Emits the two renewal outputs that close the Grundrisse cycle: - mp_renewed: means of production consumed (→ Production) - labor_power_renewed: labor-power reproduced (→ Production)

Return type:

dict[str, Any]

Returns:

Base observation extended with renewal outputs.

step(inputs, world)[source]

Motion law T for consumption dynamics.

Parameters:
  • inputs (TickInputs) – Upstream outputs (currently unused).

  • world (WorldView) – Read-only world context.

Return type:

ConsumptionDialectic

Returns:

New ConsumptionDialectic with updated tick.

type_tag: str
id: UUID
pole_a: A
pole_b: B
weight: float
parent_id: UUID | None
tick_created: int
tick_updated: int
class babylon.engine.dialectics.volume_2.DisproportionalityCrisisDialectic(**data)[source]

Bases: Dialectic[EmptyPole, EmptyPole]

Triggered when ReproductionDialectic sublates due to departmental imbalance.

Department I and Department II fail to maintain the exchange relation I(v+s) = IIc required for simple reproduction.

Parameters:
model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

step(inputs, world)[source]

Crisis persistence — disproportionality deepens.

Parameters:
  • inputs (TickInputs) – Upstream outputs (currently unused).

  • world (WorldView) – Read-only world context.

Return type:

DisproportionalityCrisisDialectic

Returns:

Updated crisis dialectic with new tick.

type_tag: str
id: UUID
pole_a: A
pole_b: B
weight: float
parent_id: UUID | None
tick_created: int
tick_updated: int
class babylon.engine.dialectics.volume_2.DistributionDialectic(**data)[source]

Bases: Dialectic[Wages, SurplusShares]

Wages ↔ SurplusShares distribution (Grundrisse moment).

Weight semantics:

weight < 0 → wages dominate surplus claims. weight > 0 → surplus claims squeeze wages (profit squeeze).

Parameters:
model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

observe()[source]

Project distribution state for downstream dialectics.

Emits: - wages_paid: total wages from pole A (→ Consumption) - surplus_distributed: total surplus from pole B (→ Consumption)

Return type:

dict[str, Any]

Returns:

Base observation extended with distribution outputs.

step(inputs, world)[source]

Motion law T for distribution dynamics.

Parameters:
  • inputs (TickInputs) – Upstream outputs. Looks for profit_squeeze events.

  • world (WorldView) – Read-only world context.

Return type:

DistributionDialectic

Returns:

New DistributionDialectic with updated weight.

type_tag: str
id: UUID
pole_a: A
pole_b: B
weight: float
parent_id: UUID | None
tick_created: int
tick_updated: int
class babylon.engine.dialectics.volume_2.EmptyPole(**data)[source]

Bases: BaseModel

Placeholder pole when a Dialectic represents a unary transformation or state wrapper.

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class babylon.engine.dialectics.volume_2.IndividualConsumption(**data)[source]

Bases: BaseModel

Individual consumption: reproduction of labor-power.

Parameters:

labor_power_reproduced (Annotated[float, Ge(ge=0)])

labor_power_reproduced

Value of labor-power reproduced.

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

labor_power_reproduced: float
class babylon.engine.dialectics.volume_2.ProductiveConsumption(**data)[source]

Bases: BaseModel

Productive consumption: means of production consumed in production.

Parameters:

means_of_production_value (Annotated[float, Ge(ge=0)])

means_of_production_value

Value of means of production consumed.

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

means_of_production_value: float
class babylon.engine.dialectics.volume_2.RealizationCrisisDialectic(**data)[source]

Bases: Dialectic[EmptyPole, EmptyPole]

Triggered when CirculationDialectic sublates due to realization failure.

Commodity capital cannot be reconverted to money capital because commodities cannot find buyers at their value.

Parameters:
model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

step(inputs, world)[source]

Crisis persistence — realization crisis deepens.

Parameters:
  • inputs (TickInputs) – Upstream outputs (currently unused).

  • world (WorldView) – Read-only world context.

Return type:

RealizationCrisisDialectic

Returns:

Updated crisis dialectic with new tick.

type_tag: str
id: UUID
pole_a: A
pole_b: B
weight: float
parent_id: UUID | None
tick_created: int
tick_updated: int
class babylon.engine.dialectics.volume_2.ReproductionDialectic(**data)[source]

Bases: Dialectic[DepartmentRow, DepartmentRow]

Department I ↔ Department II contradiction.

Pole A handles Dept I (Means of Production). Pole B handles Dept II (Means of Consumption). Weight maps to the gap returned by check_simple_reproduction.

Parameters:
model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

step(inputs, world)[source]

Motion law T for reproduction balance.

Parameters:
  • inputs (TickInputs) – Upstream outputs (currently unused — poles hold totals).

  • world (WorldView) – Read-only world context.

Return type:

ReproductionDialectic

Returns:

New ReproductionDialectic with updated weight.

sublate()[source]

Sublate to DisproportionalityCrisis when imbalance is extreme.

Return type:

Dialectic[Any, Any] | None

Returns:

DisproportionalityCrisisDialectic if |weight| >= 0.8, else None.

type_tag: str
id: UUID
pole_a: A
pole_b: B
weight: float
parent_id: UUID | None
tick_created: int
tick_updated: int
class babylon.engine.dialectics.volume_2.SurplusShares(**data)[source]

Bases: BaseModel

Surplus shares distributed among claimants.

Parameters:
profit_distributed

Profit of enterprise distributed.

interest_paid

Interest on borrowed capital.

rent_paid

Ground rent paid to landowners.

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

profit_distributed: float
interest_paid: float
rent_paid: float
class babylon.engine.dialectics.volume_2.TurnoverDialectic(**data)[source]

Bases: Dialectic[TurnoverProfile, AnnualSurplusValue]

Turnover cycle dialectic.

Pole A is TurnoverProfile (durations). Pole B is AnnualSurplusValue (computed turnover-adjusted rates).

Parameters:
  • id (UUID)

  • type_tag (str)

  • pole_a (TurnoverProfile)

  • pole_b (AnnualSurplusValue)

  • weight (Annotated[float, Ge(ge=-1.0), Le(le=1.0)])

  • parent_id (UUID | None)

  • tick_created (int)

  • tick_updated (int)

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

observe()[source]

Project turnover state.

Return type:

dict[str, Any]

Returns:

Base observation + annual surplus value metrics.

step(inputs, world)[source]

Motion law T for turnover dynamics.

Parameters:
  • inputs (TickInputs) – Upstream outputs with v and s values.

  • world (WorldView) – Read-only world context.

Return type:

TurnoverDialectic

Returns:

New TurnoverDialectic with updated annual surplus value.

type_tag: str
id: UUID
pole_a: A
pole_b: B
weight: float
parent_id: UUID | None
tick_created: int
tick_updated: int
class babylon.engine.dialectics.volume_2.Wages(**data)[source]

Bases: BaseModel

Wage component of distribution.

Parameters:

wages_paid (Annotated[float, Ge(ge=0)])

wages_paid

Total wages paid in the distribution round.

model_config: ClassVar[ConfigDict] = {'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

wages_paid: float