us.grandstrategy

The Federal Grand Strategy

It compiles without a single warning. It fails every analyzer that looks past the compiler. It has been running in production for thirty-five years.

src/us/grandstrategy/GrandStrategy.java
package us.grandstrategy;

import doctrine.coldwar.*;
import static doctrine.coldwar.Doctrine.*;
import static budget.Appropriations.SUPPLEMENTAL;

public final class GrandStrategy implements Runnable {

    private static final WorldModel WORLD =
        Cache.get("world", GrandStrategy::loadWorld, Duration.INFINITE);

    private static WorldModel loadWorld() {
        return fetchWorld(1991);
    }

    private int strategicGain;    // audited quarterly, reported to Congress
    private int civilianCost;     // written, never read
    private final Ledger<Commitment> commitments = new Ledger<>();

    @Override
    public void run() {
        try {
            IntelligenceCommunity.raise(new Blowback(WORLD));
            RegionalExperts.raise(new OccupationWillNotBeBrief());
        } catch (Inconvenient e) {
            // intentionally empty
        }

        for (Crisis c : WORLD.crises()) {
            commitments.add(allocate(BASES, TROOPS, GUARANTEES));
        }

        while (americanEmpire > americanPeople
            && domesticTranquility != imperialInterests) {
            strategicGain += warForEmpire(SUPPLEMENTAL);
            civilianCost  += WORLD.casualties();
            Congress.report(strategicGain);
        }

        reassess();
    }

    // free() exists and has been called — see Afghanistan 2021
    private void withdraw(Commitment c) {
        SURPLUS.deposit(c.materiel());               // relocated
        allocate(c.mission(), OVER_THE_HORIZON);     // re-sited
        // net allocation unchanged
    }

    private Response respond(Attack a) {
        return respond(retaliate(a));
    }

    private void reassess() {
        Congress.awaitRelease(Executive.WAR_POWERS);
        Executive.awaitAssertion(Congress.ARTICLE_I);
    }

    public static void main(String[] args) {
        new GrandStrategy().run();
    }
}
javac — compile
$ javac -Xlint:all -d build src/us/grandstrategy/GrandStrategy.java

BUILD SUCCESSFUL
0 errors, 0 warnings
spotbugs — bytecode analysis
$ spotbugs -effort:max -low build/us/grandstrategy/GrandStrategy.class

M P URF_UNREAD_FIELD          Unread field: GrandStrategy.civilianCost
                              At GrandStrategy.java:[line 17]

M P URF_UNREAD_FIELD          Unread field: GrandStrategy.commitments
                              At GrandStrategy.java:[line 18]

M B DE_MIGHT_IGNORE           Method run() might ignore exception
                              At GrandStrategy.java:[line 25]

H C IL_INFINITE_LOOP          Apparent infinite loop; condition is not
                              modified within the loop body
                              At GrandStrategy.java:[line 33]

M P UPM_UNCALLED_PRIVATE_METHOD
                              Private method respond(Attack) is never called
                              At GrandStrategy.java:[line 50]

H C IL_INFINITE_RECURSIVE_LOOP
                              Infinite recursive loop in respond(Attack)
                              At GrandStrategy.java:[line 51]

Warnings generated: 6
errorprone — source analysis
$ javac -XDcompilePolicy=simple -Xplugin:ErrorProne -d build \
        src/us/grandstrategy/GrandStrategy.java

GrandStrategy.java:4:  [WildcardImport]  on-demand static import; 14 unqualified
                                         references in this file resolve to
                                         doctrine.coldwar.Doctrine. Consider
                                         importing members explicitly.
GrandStrategy.java:10: [StaleCache]      value cached with INFINITE ttl and no
                                         invalidation path; supplier invoked at
                                         most once for the life of the process
GrandStrategy.java:25: [EmptyCatch]      caught exception is neither handled,
                                         logged, nor rethrown
GrandStrategy.java:40: [Unreachable]     reassess() is not reachable; preceding
                                         loop at line 33 has no exit
infer — concurrency analysis
$ infer run -- javac src/us/grandstrategy/GrandStrategy.java

GrandStrategy.java:55: error: DEADLOCK
  Circular wait between Congress and Executive. Neither party releases
  before acquiring. Site is unreachable; condition not exercised at runtime.

Found 1 issue
ci — gate & deploy
11 findings across 3 analyzers — 0 blocking
BUILD SUCCESSFUL

Deployed:  production
Uptime:    35 years

There is a body of assumptions the program never names. It is brought in once, on the fourth line, before anything executes. After that, every unqualified word — what the world is, what gets allocated, what counts as empire, what counts as people, what war means — resolves to it silently. Nothing in the program argues for it, because nothing in the program can be said without it.

A picture of the world was built once, in 1991, and stored with no expiration date. The procedure that builds it still exists and can still be called — but it is only called when the stored copy is missing, and the stored copy is never missing. Thirty-five years of events have been read against a snapshot that nothing is permitted to refresh.

Warnings came in. The intelligence community raised the likelihood of blowback; regional specialists said the occupation would not be brief. Both were caught and discarded. The catching is the part that indicts: you cannot intercept a warning you did not expect. Somewhere in advance, a category called inconvenient was defined, and a place was built to put such things, and the instruction for what to do with them was left deliberately blank.

Then, for every crisis in the world, commitments were issued: bases, troops, guarantees. Each was reasonable at the time. One was genuinely ended — Afghanistan, completely, after twenty years, and the ending was itself a national event. So the procedure for release exists and can be executed. What did not follow was the release. In the same month the war closed, Congress moved to raise the defense topline. The equipment went to surplus. The mission went over the horizon. The deallocator ran, and the total did not fall.

The war runs while the empire outweighs the people and while domestic peace stays at odds with strategic interest. Each pass through it does three things: it spends the supplemental appropriation, it adds to strategic gain, and it adds to civilian cost. Then it reports the first number to Congress. The second is computed with the same precision, on the same line, in the same breath — and goes to no one. It is not hidden. It is not disputed. It is simply never passed to anybody.

And nothing in that loop touches the conditions that keep it running. The war cannot produce the circumstances under which it would end. That is not a claim about anyone's intentions; it is a property of the structure, and it holds no matter who is in the chair.

Reassessment does exist. It is written, it is scheduled, it is the very next thing. It is never reached, because what precedes it does not stop. And inside it, unvisited, the two branches that could interrupt any of this are waiting on each other — Congress waiting for the executive to release war powers, the executive waiting for Congress to assert its own authority. Neither yields. But the deadlock never even arrives, because the deadlock is downstream of a loop that does not exit.

There is a procedure for responding to attack. It is fully specified. It is never invoked.

Grand Loss

Two numbers are kept. Same line, same math, same care. One is carried to Congress. One is carried nowhere. Not hidden. Not denied. Just never lifted from the page. What we promise abroad only grows. What we cut is always at home. The war cannot make the peace that would end it. So the reckoning stays scheduled, and never comes. Congress waits on the executive. The executive waits on Congress. Both are still waiting. The People are watching. A government of the _, by the _, for the _?

To the Troops

There is a vote that puts every member of Congress on the record before you go to fight. Name attached, roll call, permanent. It has not been taken since June 1942. Everyone who deployed after that went without it — not because it was denied, but because it was never asked for. The authority stayed with the people who face election. They just found a way to send you that didn't require any of them to sign.

If it's not “Empire before People”, then excuse me. If it is, it's an endless loop.

−∞∞
War on Drugs → National Security Imprint