Verum

Can an agent cheat the judge?

Loading the Python runtime (about 10 MB, cached after the first visit)

in out undecided
1 / 1
accepted rejected hidden x y z
The judge accepts the grounded extension of everything revealed

Is truth-telling optimal?

Theorem 5.4 gives a graph condition that guarantees strategyproofness. We tested it on 7,000 random debates and then on every small graph there is.

Q1. How often is the mechanism strategyproof?

1,000 random instances per attack probability p: 3 agents, 6–8 arguments, arguments split at random. The shaded gap is Q3: instances that are strategyproof although the condition fails.

Strategyproof (exact, Theorem 5.3) Theorem 5.4 condition holds Strategyproof without the condition

Q2 and Q3, per p

Q2 counts instances where the condition holds but an agent can still gain by hiding, which would contradict the theorem. It is zero everywhere. The walk and simple-path readings of "odd path" agreed on all 7,000 instances.

Run it yourself

Draw fresh instances with the same generator and check each one exactly, right here in your browser.

Attack probability0.20
Instances100

Exhaustive check

Random sampling can miss rare cases, so every directed graph on up to 5 arguments was checked together with every possible argument set for one agent.

Why is the condition so conservative?

Each strategyproof instance that fails the condition gets one of three explanations. Open an example in the game to see it play out.

How it works

A short tour of the ideas behind each tab. Everything on this site runs the project's actual Python library in your browser through Pyodide. Nothing is reimplemented in JavaScript.

01Arguments and attacks

A debate is a directed graph. Each node is an argument and each arrow says one argument attacks another. A set of arguments is conflict-free if none of them attack each other. It defends an argument if it attacks every attacker of that argument.

The characteristic function F(S) returns every argument S defends. Starting from the empty set and applying F repeatedly reaches a fixed point: the grounded extension, the arguments that are beyond reasonable doubt.

02Semantics

A semantics is a rule for which sets of arguments a rational judge may accept together.

CompleteConflict-free and equal to F(S): it accepts exactly what it defends.
GroundedThe smallest complete extension. It is unique and as cautious as possible.
PreferredThe largest complete extensions: as bold as possible.
StableAttacks every argument it does not contain. May not exist.
Semi-stableComplete, with the largest range S ∪ S⁺. It is stable whenever a stable extension exists.

Each complete extension corresponds to a labelling: in if all attackers are out, out if some attacker is in, undecided otherwise. An argument is skeptically accepted if it is in every extension, credulously accepted if it is in at least one, and rejected otherwise.

03The strategic game

Now the arguments belong to agents. Each agent privately holds some arguments and chooses which to reveal to a judge. Agents can hide arguments but cannot invent them. The grounded direct mechanism accepts the grounded extension of whatever was revealed. An agent's utility is how many of its own arguments end up accepted.

The mechanism is strategyproof if revealing everything is always a best response, whatever the others do. That can fail. In Example 5.10, agent x hides α1, which lets α2 defeat α3, which frees x's arguments α4 and α5. x goes from 1 accepted argument to 2.

04The two theorems

Theorem 5.3 is exact: the mechanism is strategyproof if and only if, for every agent and every combination of what the others reveal, truth-telling maximises utility. The engine checks this by brute force, caching grounded extensions by the set of revealed arguments.

Theorem 5.4 is a cheap sufficient condition. Write α ↪ β if there is an odd-length attack path from α to β: odd steps attack and even steps defend, so α works against β. If no agent holds both α and β with α ↪ β, the mechanism is strategyproof.

Cycles make "odd-length path" ambiguous, so both readings are implemented. Walks may revisit arguments and are searched over (argument, parity) states, so cycles terminate. Simple paths may not revisit, and are enumerated directly. With g → u, the cycle u → v → w → u, and u → t, the only simple path from g to t has length 2, but the walk g u v w u t has length 5.

05What the experiments found

  • Q1. Strategyproofness falls quickly as attacks get denser, from 96% at p = 0.05 to 3% at p = 0.5.
  • Q2. The theorem held every time: no counterexample in 7,000 random instances or in over 200 million exhaustive cases, under either reading of odd path.
  • Q3. The condition is very conservative. 70% of strategyproof instances fail it, mostly because hiding can rescue one argument but always costs at least one other, and utility counts arguments.

06Textbook errata

Two misprints in Rahwan, Argumentation among Agents (Weiss, Multiagent Systems, 2nd ed., Ch. 5) were confirmed by the engine. In Example 5.10 the utilities of y and z are swapped: y holds α2 and gets 0, z holds α3 and gets 1. After Example 5.11, the argument that cancels the indirect self-defeat is α6, which attacks α3, not α5.

07Under the hood

The engine is a dependency-free Python package with 97% test coverage, type-checked with mypy. This page loads it into Pyodide (CPython compiled to WebAssembly) and draws graphs with Cytoscape.js. The full write-up is in the report.