babylon.engine.dialectics.volume_3
Capital Volume III dialectics — backward-compatibility re-export shim.
Deprecated since version Import: directly from the individual modules instead:
babylon.engine.dialectics.surplus_distribution,
babylon.engine.dialectics.trpf, etc.
- class babylon.engine.dialectics.volume_3.CoreEconomy(**data)[source]
Bases:
BaseModelPole A for the Imperial dialectic — core / imperialist side.
- Parameters:
- core_wages
Wages paid to core workers (Wc).
- value_produced
Value produced by core workers (Vc).
- profit_rate
Core industrial profit rate.
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- core_wages: float
- value_produced: float
- profit_rate: float
- class babylon.engine.dialectics.volume_3.CreditDialectic(**data)[source]
Bases:
Dialectic[CreditPole, FictitiousCapitalStock]Real Capital ↔ Fictitious Capital.
Pole A holds the real capital stock and industrial profit rate. Pole B holds the accumulated fictitious capital claims via the
FictitiousCapitalStockfromeconomics.credit.types.- Weight semantics:
< 0: Real capital dominates (healthy production). > 0: Fictitious capital dominates (financialization).
- Motion law:
Reads upstream credit growth and default rates. Weight tracks the financialization index mapped to [-1, 1].
- Sublation:
When financialization index exceeds
FINANCIALIZATION_BUBBLE(3.5), sublates toFinancialCrisisDialectic.
- 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 credit dynamics.
- Parameters:
inputs (
TickInputs) – Upstream outputs. Looks forcredit_growth,default_rate.world (
WorldView) – Read-only world context.
- Return type:
- Returns:
New CreditDialectic with updated fictitious capital and weight.
- sublate()[source]
Sublate to financial crisis when overaccumulation exceeds threshold.
- Return type:
Dialectic[Any, Any]|None- Returns:
FinancialCrisisDialectic if financialization > BUBBLE threshold.
- 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_3.CreditPole(**data)[source]
Bases:
BaseModelPole A for the Credit dialectic — real capital side.
- Parameters:
- total_real_capital
Accumulated real capital stock K.
- profit_rate
Industrial profit rate.
- gdp
Real GDP for financialization ratio computation.
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- total_real_capital: float
- profit_rate: float
- gdp: float
- class babylon.engine.dialectics.volume_3.DebtSpiralCrisisDialectic(**data)[source]
Bases:
Dialectic[EmptyPole, EmptyPole]Crisis dialectic produced when financial claims exceed surplus.
Produced by
SurplusDistributionDialectic.sublate()when interest + rent + taxes > total surplus (FR-016).The debt spiral is self-reinforcing: unpaid interest accrues as new debt, which increases interest obligations, which further exceeds surplus. Resolution requires either devaluation of claims (crisis/default) or dramatic increase in surplus (impossible under TRPF conditions).
- 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 — debt spiral deepens or resolves.
- Parameters:
_inputs (
TickInputs) – Upstream outputs (currently unused).world (
WorldView) – Read-only world context.
- Return type:
- 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_3.FinancialCrisisDialectic(**data)[source]
Bases:
Dialectic[EmptyPole, EmptyPole]Crisis dialectic produced when fictitious capital overaccumulates.
Produced by
CreditDialectic.sublate()when the financialization index exceedsFINANCIALIZATION_BUBBLE(3.5).Marx’s insight: crisis appears as a money/credit crisis but the underlying cause is overproduction relative to profitable realization. The credit system delays but ultimately amplifies crisis.
- 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 — financial crisis deepens or resolves.
- Parameters:
_inputs (
TickInputs) – Upstream outputs (currently unused).world (
WorldView) – Read-only world context.
- Return type:
- 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_3.ImperialDialectic(**data)[source]
Bases:
Dialectic[CoreEconomy, PeripheryEconomy]Core ↔ Periphery — the Fundamental Theorem of MLM-TW.
Pole A is the imperialist core. Pole B is the exploited periphery. Imperial Rent Phi is now computed structurally from the production chain.
- Weight semantics:
< 0: Core extracts freely (labor aristocracy bribed, periphery suppressed). > 0: Periphery resists (decolonization, rising consciousness).
- Motion law:
Reads upstream matrix updates (DecomposedFlow) and computes rent structurally via ProductionChainRentCalculator, or falls back to scalar defaults. Weight derived from deviation of LAR from unity.
- Invariant:
Imperial rent Phi >= 0 (core always extracts from periphery).
- Parameters:
id (UUID)
type_tag (str)
pole_a (CoreEconomy)
pole_b (PeripheryEconomy)
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].
- step(inputs, world)[source]
Motion law T for imperial dynamics.
- Parameters:
inputs (
TickInputs) – Upstream outputs. Looks forextraction_boost.world (
WorldView) – Read-only world context.
- Return type:
- Returns:
New ImperialDialectic with updated poles and 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_3.PeripheryEconomy(**data)[source]
Bases:
BaseModelPole B for the Imperial dialectic — periphery / exploited side.
- Parameters:
- periphery_wages_ratio
w_core / w_periphery ratio.
- extraction_rate
Imperial extraction efficiency alpha [0, 1].
- consciousness
Periphery resistance level Psi_p [0, 1].
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- periphery_wages_ratio: float
- extraction_rate: float
- consciousness: float
- class babylon.engine.dialectics.volume_3.ProfitRateState(**data)[source]
Bases:
BaseModelPole A for the TRPF dialectic.
- Parameters:
- profit_rate
Current average rate of profit.
- profit_rate_trend
Year-over-year change in profit rate.
- organic_composition
c/v ratio (OCC).
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- profit_rate: float
- profit_rate_trend: float
- organic_composition: float
- class babylon.engine.dialectics.volume_3.RentDialectic(**data)[source]
Bases:
Dialectic[RentPole, EmptyPole]Ground Rent extraction — Absolute ↔ Differential.
Pole A holds the three-category rent decomposition (agricultural, resource, urban) from
economics.rent.types.- Weight semantics:
< 0: Rent is a minor claims category (small rentier share). > 0: Rent dominates surplus distribution (rentier economy).
- Motion law:
Reads upstream
total_surplusto compute rentier share. Weight = 2 * (rent_share) - 1, clamped to [-1, 1].
- 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 rent dynamics.
- Parameters:
inputs (
TickInputs) – Upstream outputs. Looks fortotal_surplus.world (
WorldView) – Read-only world context.
- Return type:
- Returns:
New RentDialectic 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_3.RentPole(**data)[source]
Bases:
BaseModelPole A for the Rent dialectic — three-category decomposition.
Reimplements the three-category rent aggregation from
economics.rent.types.RentExtraction. The formulatotal_rent = agri + resource + urbanis identical. This is intentional: the dialectic receives pre-aggregated county-level data and does not perform data-source lookups.See also
babylon.economics.rent.types.RentExtraction- Parameters:
- agricultural_rent
Rent from farming / rural land.
- resource_rent
Rent from extractive industries.
- urban_rent
Rent from urban / building-site monopoly.
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- agricultural_rent: float
- resource_rent: float
- urban_rent: float
- class babylon.engine.dialectics.volume_3.SurplusDistributionDialectic(**data)[source]
Bases:
Dialectic[SurplusDistributionPole, EmptyPole]Surplus Value Distribution — s = p + i + r + t.
Named “Distribution” rather than “Transformation” to distinguish this from the value → price transformation problem (V3 Ch9-10), which is out of scope (spec 024, Assumptions). This dialectic models how total surplus decomposes into competing revenue claims.
Pole A stores the s = p + i + r + t decomposition. Weight tracks the share of surplus retained by industrial capital (enterprise profit) versus claims by money-capital (interest), landed capital (rent), and the state (taxes).
- Weight semantics:
< 0: Enterprise profit dominates (healthy accumulation). > 0: Claimants dominate (profit squeeze / debt spiral).
- Motion law:
Reads upstream interest rate changes and recomputes the distribution. Weight shifts toward +1 as claims crowd out enterprise profit.
- Sublation:
When
claims_exceed_surplusis True, sublates toDebtSpiralCrisisDialectic.
- 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 surplus value distribution.
- Parameters:
inputs (
TickInputs) – Upstream outputs. Looks for own id’s entry withinterest_rate_increase(float).world (
WorldView) – Read-only world context.
- Return type:
- Returns:
New SurplusDistributionDialectic with updated weight and poles.
- sublate()[source]
Sublate to debt spiral when claims exceed surplus (FR-016).
- Return type:
Dialectic[Any, Any]|None- Returns:
DebtSpiralCrisisDialectic if claims exceed surplus, 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_3.SurplusDistributionPole(**data)[source]
Bases:
BaseModelPole A for the Distribution dialectic.
Reimplements the surplus value distribution identity from
economics.distribution.SurplusValueDistributionfor the dialectic layer. The formulap = s - i - r - tis identical toSurplusValueDistribution.profit_of_enterprise. This is intentional: the dialectic receives pre-computed distribution inputs and does not perform data-source lookups.See also
babylon.economics.distribution.types.SurplusValueDistribution- Parameters:
- total_surplus
Total surplus value produced (s).
- interest_payments
Interest claim on surplus (i).
- ground_rent
Ground rent claim on surplus (r).
- taxes
Tax claim on surplus (t).
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- total_surplus: float
- interest_payments: float
- ground_rent: float
- taxes: float
- class babylon.engine.dialectics.volume_3.TRPFDialectic(**data)[source]
Bases:
Dialectic[ProfitRateState, CounterTendencyStrength]Tendency of the Rate of Profit to Fall ↔ Counteracting Tendencies.
Pole A holds the tendency (profit rate trajectory). Pole B holds the counter-tendency vector from
economics.counter_tendencies.- Weight semantics:
< 0: TRPF dominating (profit rate falling, counter-tendencies weak). > 0: Counter-tendencies dominating (profit rate sustained).
- Motion law:
Reads upstream OCC and exploitation rate changes, delegates to
CounterTendencyStrength.net_counter_tendencyfor weight.
No sublation: TRPF is a structural tendency, not an event.
- 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 TRPF dynamics.
- Parameters:
inputs (
TickInputs) – Upstream outputs. Looks forocc,exploitation_rate.world (
WorldView) – Read-only world context.
- Return type:
- Returns:
New TRPFDialectic with updated weight and poles.
- type_tag: str
- id: UUID
- pole_a: A
- pole_b: B
- weight: float
- parent_id: UUID | None
- tick_created: int
- tick_updated: int