guide contents
Baixada · Study · Field guidePart I · The solve, and how to read it
Chapter vi

The lossless abstractions behind the solve

The solver does not keep two names when the rules can never tell them apart. It renames strategically identical cards, copies, and seats, solves that shared game once, then restores the familiar names in the lab.

This is not hand bucketing and not an estimate. Every reduction on this page is a lossless isomorphism: it preserves every legal action, chance, payoff, and continuation. The tree is smaller; the game is unchanged.

§ 1

Off-manilha suits disappear

Outside the four manilhas, suit never affects strength or legality. A plain 3 of diamonds and a plain 3 of clubs therefore have the same future against every possible hand. The solver keeps one plain-3 class; the lab can print any of its four physical suits when needed.

3♦ 3♠ 3♥ 3♣one plain-3 class
§ 2

Equivalent cards become copy counts

Once plain suits are irrelevant, physical 7s are interchangeable. What matters is only how many remain. In the example below one 7 is already visible, so the tree stores one rank with three remaining copies instead of three named cards. Every newly visible 7 subtracts another copy.

after one 7 is visible7♦ 7♠ 7♥7 × three remaining copies
§ 3

Three public facts select one subgame

The match is not solved as one monolithic tree. At every new hand, three public facts select a bounded subgame: the score, the dealer assignment, and the turn-up card. Each changes the game that follows, for a different reason.

1Match score5 × 7

Sets mão de onze, the legal raise ladder, and the value of every score reached next.

2Dealer assignmentDealer is seat 0

Determines mão and pé: who leads now, whose score sits in each role, and who deals next.

3Turn-up cardvira 4 · 5s are manilhas

Fixes card strength, the reduced deck class, and the probabilities of abstract deals.

Selected subgamemão 7 × pé 5

vira 4 · dealer seat 0

The solver then rewrites the first two facts in role order. Seat 0 and seat 1 are service identifiers; mão leads round one and dealt the hand. Dealer assignment is therefore not discarded and not an extra ×2: it decides which physical player's score occupies each role slot. Rotate the dealer without changing either player's points and the ordered score swaps.

Dealer is seat 0mão 7 × pé 5
Dealer is seat 1mão 5 × pé 7

Same physical score in both cases: seat 0 has 5 · seat 1 has 7. The dealer assignment changes which ordered subgame is solved.

How many subgames does that create?

That normalization gives the grid immediately. Mão and pé can each have 0 through 11 points, so dealer-oriented score produces 12 × 12 = 144 role-ordered states. The deck has ten concrete turn-up ranks but only nine exact structural classes; the next section proves the one merge, vira 2 ≡ vira 3. Dealer is not another ×2 because it has already decided which physical score belongs to pé.

12 × 12role-ordered score states
9turn-up classes
1,296exact subgames

Together these are 1,296 exact one-hand subgames. This is what the lab's Score, Dealer, and Turn-up controls select: the score and dealer choose the role-ordered state, and the turn-up chooses one of its nine card trees. They are coordinates of a policy, not cosmetic labels.

How much do the coordinates matter? It has been measured, over converged neighboring solutions: neighboring turn-up classes are nearly interchangeable wherever play actually goes, while neighboring scores disagree on about a seventh of actual play, concentrated in the hand's first moves. That asymmetry is why solutions transfer across turn-ups far more cheaply than across scores.

The measured tables, in the appendix
§ 4

Two turn-ups can be one exact class

The surprising case is vira 2 ≡ vira 3. With vira 2, the 3s become manilhas and only three plain 2s remain. With vira 3, the 4s become manilhas and only three plain 3s remain. Rename every strength one step around the deck and the structures match exactly: eight full plain ranks, one three-copy top plain rank, and four suit-ordered manilhas.

Two horizontal rows, one inventoryWhy two turn-ups share one class
Concrete turn-upPlain strengths · weakest to strongestManilhas
vira 23s are manilhas
4×45×46×47×4Q×4J×4K×4A×42×3
3333
vira 34s are manilhas
5×46×47×4Q×4J×4K×4A×42×43×3
4444
Read either row straight across: eight full plain ranks, one three-copy top plain rank, then four suit-specific manilhas. The concrete names shift, but the inventory and every strategic relation stay fixed — so the two rows share one exact solution.

That is why the picker may show either 2 or 3 while loading the same exact solution. Your chosen or typed rank is still remembered in every concrete card label; only the strategically identical structure is shared.

§ 5

Solve from the finish backward

Here is the real dependency. At 10 × 11, the player on 11 faces the mão-de-onze choice: accept and play the hand for 3, or fold and concede 1. Accepting makes this hand match-deciding either way. Folding instead creates the next hand at 11 × 11, with the dealer rotated. So the correct fold value is whatever the already-solved 11 × 11 game is worth to this player — not simply “minus one point.”

One public decision, many private handsAccept changes with the hand; fold stays at 44.7%vira 4
decision nodemão 10 × pé 11
acceptfold
play the current hand for 3
accept74.0%>44.7%
fold28.3%<44.7%
concede 1 and enter 11 × 11
44.7%win rate if the 11 × 11 hand is played
Compare each hand with 44.7%below → fold · above → accept · equal → mix
The two accept percentages are real hands from the shipped solve with vira 4 and seat 0 dealing; the final dots stand for the many other possible holdings. Folding ignores the current cards and loads the same freshly dealt 11 × 11 continuation.

The solver therefore solves both dealer orientations of 11 × 11 first, across the nine turn-up classes, and stores their chance-weighted continuation values. It substitutes the appropriate stored value into the fold leaf of every 10 × 11 tree, then solves the accept-or-fold decision. Repeating that substitution moves the solution backward through the match. The current turn-up affects the accept branch; after a fold, the deck is reshuffled and the next turn-up is sampled afresh. This is exact dynamic programming, not a truncated horizon.

Backward induction · one score layer at a timeSolved futures unlock earlier scores
arrow: solved continuation → newly solvable scoreHover or focus a score to inspect its stored match equity.
11 × 11solve first11 × 1010 × 119 × 1110 × 1011 × 911 × 810 × 99 × 108 × 119 × 9
Scores are mão × pé. Dealer rotation flips the roles after every hand, so solved 11 × 10 unlocks 9 × 11, while 10 × 11 unlocks 11 × 9. A node with two incoming arrows — such as 10 × 10 or 9 × 9 — waits for both continuations. The dotted branches continue backward beyond this slice.

How large those trees get — and how much of the 1,296-subgame grid is solved so far, at what cost — is ledger material, kept with the rest of the measurements.

The measured tables, in the appendix