# Invariant Check

> A technique for checking after each change that the rules a state must always satisfy still hold.

Record: `lexicon:invariant-check`
Kind: technique
Layer: [Computation Core](https://banes-lab.com/records/layer/computation-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-invariant-check

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Precondition Check](https://banes-lab.com/records/lexicon/precondition-check.md) and before [Postcondition Check](https://banes-lab.com/records/lexicon/postcondition-check.md).

## Category

- [Correctness / Determinism / Verification](https://banes-lab.com/records/lexicon-category/correctness-determinism-verification.md)

## Refactors

- [Silent Data Corruption](https://banes-lab.com/records/architecture/silent-data-corruption.md)
- [Design by Contract](https://banes-lab.com/records/architecture/design-by-contract.md)
- [Postconditions](https://banes-lab.com/records/architecture/postconditions.md)
- [Robustness Principle](https://banes-lab.com/records/architecture/robustness-principle.md)
- [ACID](https://banes-lab.com/records/architecture/acid.md)
- [Consistency](https://banes-lab.com/records/architecture/consistency.md)

## Linked from

- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Error Handling / Resilience](https://banes-lab.com/ontology/principles/architecture-category-error-handling-resilience.md)
- [Transactions / State / Concurrency](https://banes-lab.com/ontology/principles/architecture-category-transactions-state-concurrency.md)
