Mathematical Proofs
Formal proofs of the economic and probability models underlying PlayOrbs.
Proof 1: Kill Reward Exact Sum
Claim: The sum of all kill rewards equals the bounty pot.
Given:
bounty_pot: Total bounty poolN: Number of playersw(A) = 1 + log₂(A): Weight function for A alive playersW = Σ w(A)for A from 2 to N: Total weight
Kill reward formula:
per_kill(A) = floor(bounty_pot × w(A) / W)
Proof:
-
Without flooring:
Σ per_kill(A) = Σ (bounty_pot × w(A) / W)
= bounty_pot × Σ w(A) / W
= bounty_pot × W / W
= bounty_pot -
With flooring, let
r(A) = bounty_pot × w(A) / W - floor(bounty_pot × w(A) / W)be the fractional remainder. -
Total remainder:
R = Σ r(A) where 0 ≤ r(A) < 1
0 ≤ R < N-1 -
Since
Ris an integer (difference between integers),R ∈ {0, 1, ..., N-2}. -
Implementation distributes remainder to early kills:
for i in 0..R:
schedule[i] += 1 -
After adjustment:
Σ per_kill(A) = Σ floor(bounty_pot × w(A) / W) + R
= bounty_pot - R + R
= bounty_pot ∎
Proof 2: Emission Decay Convergence
Claim: Total emissions converge to a finite sum regardless of rounds played.
Given:
E₀ = 10: Initial emission per roundd = 0.85: Decay rate per epoche = 10: Rounds per epoch
Per-round emission at round r:
E(r) = E₀ × d^(floor(r/e))
Total emissions after R rounds:
T(R) = Σ E(r) for r from 0 to R-1
Proof:
-
Group by epoch n:
T(R) = Σ (e × E₀ × d^n) for complete epochs
+ (R mod e) × E₀ × d^(floor(R/e)) -
For infinite rounds (upper bound):
T(∞) = Σ (e × E₀ × d^n) for n from 0 to ∞
= e × E₀ × Σ d^n
= e × E₀ × (1 / (1 - d))
= 10 × 10 × (1 / 0.15)
= 666.67 PORB per epoch series -
Therefore:
T(∞) ≤ 666.67 PORB -
With per-round probability < 1, actual emissions are lower:
Expected(∞) < 666.67 PORB ∎
Corollary: The 100M supply cap will never be reached by emissions alone.
Proof 3: Fee Distribution Conservation
Claim: All entry fees are distributed without loss or gain.
Given:
total_payment: Entry amountvault_rate = 0.80protocol_rate = 0.20
Proof:
-
Primary split:
to_vault = floor(total × vault_rate)
to_fees = total - to_vault -
Since
floor(total × 0.80) + (total - floor(total × 0.80)) = total:to_vault + to_fees = total ✓ -
Protocol fee split:
lp_vault = floor(dev_fee / 2)
actual_dev = dev_fee - lp_vault
lp_vault + actual_dev = dev_fee ✓ -
Referral split:
referral = floor(actual_dev × 0.10)
final_dev = actual_dev - referral
referral + final_dev = actual_dev ✓ -
Total conservation:
to_vault + lp_vault + final_dev + referral
= to_vault + dev_fee
= to_vault + to_fees
= total ∎
Proof 4: Bounty Inheritance Invariant
Claim: Bounty inheritance never creates new value.
Invariant: Σ bounty_earned ≤ bounty_pot for all players at all times.
Proof by induction:
-
Base case (round start):
Σ bounty_earned = 0 ≤ bounty_pot ✓ -
Inductive step (kill at frame f):
a. Kill payment from schedule:
killer.bounty_earned += per_kill(A)