setvariant
Required. Sets the variant (type) of the Turing machine.
Syntax
setvariant(variant-name);
Parameters
variant-name: One of the supported variant names (see Variants)
Valid Variants
single-tape- Standard deterministic single-tape Turing machinemulti-tape- Turing machine with multiple tapesmulti-step- Turing machine with multiple steps per transitionmulti-tape-multi-step- Combines multi-tape and multi-step featurescomputational- Computational variant that uses halt states instead of accept/rejectnondeterministic- Allows nondeterministic transitions
Examples
setvariant(single-tape);
setvariant(multi-tape);
settapecount(2); ### Required for multi-tape
setvariant(computational);
Rules
- Must appear before any declarations or transitions
- Can only be declared once
- Determines which marker functions are valid (
makeaccept/makerejectvsmakehalt) - Multi-tape variants require
settapecount
Errors
- Missing setvariant:
'setvariant' is required - Unknown variant:
unknown variant 'xyz'. Did you mean 'single-tape'? - Duplicate:
duplicate 'setvariant' - Wrong position:
'setvariant' must appear before any declarations or transitions
See Also
- Variants - Detailed explanation of each variant
- settapecount - Configure tape count for multi-tape variants