# Architecture principles whose category is Correctness / Determinism / Verification

> 15 records

This index as JSON: https://banes-lab.com/json/api/facets/architecture/category/correctness-determinism-verification

## Entries

- [Determinism](https://banes-lab.com/records/architecture/determinism.md): A design rule that the same inputs and state always produce the same result, with time and randomness passed in as inputs.
- [Predictability](https://banes-lab.com/records/architecture/predictability.md): The degree to which a caller can foresee what an operation does from its interface and contract.
- [Referential Transparency](https://banes-lab.com/records/architecture/referential-transparency.md): A design rule that an expression can be replaced by its value without changing the program's behavior.
- [Pure Functions](https://banes-lab.com/records/architecture/pure-functions.md): A technique for writing logic as functions whose result depends only on their arguments and which have no side effects.
- [Immutability](https://banes-lab.com/records/architecture/immutability.md): A design rule that a value is never changed after it is created, and a change produces a new value.
- [Reproducibility](https://banes-lab.com/records/architecture/reproducibility.md): The degree to which a build, test or training run gives the same output from the same pinned inputs on another machine.
- [Repeatability](https://banes-lab.com/records/architecture/repeatability.md): The degree to which rerunning the same test or process in the same environment gives the same result.
- [Correctness](https://banes-lab.com/records/architecture/correctness.md): The degree to which the behavior of code matches its specification.
- [Formal Verification](https://banes-lab.com/records/architecture/formal-verification.md): The activity of proving, against a formal specification, that an algorithm or protocol keeps its invariants for every input.
- [Specification-Based Testing](https://banes-lab.com/records/architecture/specification-based-testing.md): The activity of deriving tests from a specification's stated behavior, independently of how the code implements it.
- [Property-Based Testing](https://banes-lab.com/records/architecture/property-based-testing.md): The activity of checking that a stated property holds for many generated inputs, and shrinking each failure to a minimal counterexample.
- [Static Analysis](https://banes-lab.com/records/architecture/static-analysis.md): A mechanism that checks source code against a ruleset without running it.
- [Testability](https://banes-lab.com/records/architecture/testability.md): The degree to which code can be tested in isolation, with its dependencies, time and randomness supplied by the test.
- [Validation](https://banes-lab.com/records/architecture/validation.md): The activity of checking that inputs and delivered behavior meet the acceptance criteria of their users.
- [Verification](https://banes-lab.com/records/architecture/verification.md): The activity of checking that an implementation conforms to its specification.
