Skip to content

Multiple constraint

multiple_constraint · word · validated

A text satisfying two or more named constraints at once, the difficulty rising far faster than the count of rules.

Provenance

  • Source: Oulipo, Atlas de littérature potentielle (1981)
  • Attribution: reference — attested in a standard reference rather than traced to an origin
  • Checkability: self — decidable from the text and its parameters alone
  • Attested: codified — formulated as a rule by a tradition rather than declared by an author

Details

  • Kind: restrictive
  • Languages: en, de, fr
  • Requires: tokens
  • Deterministic: yes
  • Also known as: univocalic_lipogram_pair, univocalic lipogram pair, Compound constraint
  • In other languages: Mehrfachbeschränkung (de), Contrainte multiple (fr)

Notes

German declared: this row's own logic needs only tokens, which is what languages records. It says nothing about whether a particular composition works in German — that depends on whichever constraints are named in constraints, exactly as it already does in English; a caller naming a German-incompatible constraint gets that constraint's own MissingCapability, not a false pass from this row.

Prompt hint

Satisfy both named constraints in the same passage, without relaxing either.

Parameters

Name Type Default Description
constraint_params object — Per-constraint parameters, keyed by the constraint's id in constraints.
constraints array — Ids of already-registered procedures this text must jointly satisfy.

Examples

univocalic-and-lipogram-both-hold

en — this text satisfies the procedure.

the letters were her tender ferments

Parameters: constraints=['univocalic', 'lipogram'], constraint_params={'univocalic': {'vowel': 'e'}, 'lipogram': {'forbidden': 'a'}}

Source: constructed example; satisfies a vowel-e univocalic and an a-lipogram together

one-of-two-constraints-fails

en — this text does not satisfy the procedure.

the cat sat

Parameters: constraints=['univocalic', 'lipogram'], constraint_params={'univocalic': {'vowel': 'e'}, 'lipogram': {'forbidden': 'z'}}

Source: constructed counterexample; the vowel constraint is broken, the letter one is not

univocalic-und-lipogram-beide-erfuellt

de — this text satisfies the procedure.

wer entdeckt echtes leben

Parameters: constraints=['univocalic', 'lipogram'], constraint_params={'univocalic': {'vowel': 'e'}, 'lipogram': {'forbidden': 'a'}}

Source: constructed example; satisfies a vowel-e univocalic and an a-lipogram together

eine-von-zwei-bedingungen-scheitert

de — this text does not satisfy the procedure.

der Wind trug die Blumen fort

Parameters: constraints=['univocalic', 'lipogram'], constraint_params={'univocalic': {'vowel': 'e'}, 'lipogram': {'forbidden': 'z'}}

Source: constructed counterexample; the vowel constraint is broken, the letter one is not — reuses lipogram's own de fixture

univocalisme-et-lipogramme-tiennent-ensemble

fr — this text satisfies the procedure.

les lettres tendres se perdent

Parameters: constraints=['univocalic', 'lipogram'], constraint_params={'univocalic': {'vowel': 'e'}, 'lipogram': {'forbidden': 'a'}}

Source: constructed example; satisfies a vowel-e univocalic and an a-lipogram together

une-des-deux-contraintes-echoue

fr — this text does not satisfy the procedure.

le chat dort

Parameters: constraints=['univocalic', 'lipogram'], constraint_params={'univocalic': {'vowel': 'e'}, 'lipogram': {'forbidden': 'z'}}

Source: constructed counterexample; the vowel constraint is broken, the letter one is not