this document collects principles, constraints, and reasoning techniques for making systems easier to think about and easier to write down.
the focus is on representation. how information is expressed, structured, and manipulated to reduce accidental complexity while preserving essential structure.
the material applies across domains including conceptual modeling, software, notation, and formal reasoning. it is not a linear method, but a toolbox of compatible practices.
simplicity is the degree to which an artifact eliminates accidental complexity relative to the essential complexity of the problem it addresses.
it is measured against an asymptotic ideal in which no surplus structure, indirection, or semantic overhead remains beyond what the problem itself necessitates.
compared to efficiency, simplicity minimizes accidental complexity. efficiency minimizes resource consumption.
constraints on surface form that reduce cognitive load and support mechanical manipulation.
principles and structures for organizing ideas before committing to specific representations.
this section connects abstract reasoning practices to concrete modeling techniques.
collect relevant words or keywords into word clusters of related terms.
this supports disambiguation, selection of appropriate vocabulary, and identification of transferable knowledge.
labelling introduces discrete boundaries in the problem space. discretization enables combinatorial search, recombination, inference, and comparison.
symbolic manipulation, rather than undifferentiated experience, permits detection of sameness, adjacency, and absence. this enables compression and reuse of reasoning.
graph, network vertex, node, knot edge, arc, link, relation
facets are freely chosen; clustering depends only on perceived proximity along a facet.
clear, empty, reset, wipe, truncate, zero traverse, iterate, walk, scan, visit
transition from informal association to structured coverage of a domain.
procedures for reducing uncertainty, guiding exploration, and constraining design decisions.
identify the smallest set of high leverage facts that yields broad understanding.
use a "20 questions" framing. each question partitions the search space, reduces ambiguity, and links categories.
evaluate options against objectives, constraints, and trade offs.
document rationale and mark chosen paths to preserve decision context and enable later revision.
extend only by increments that persist in the final system. additions extend the shape already present, not correct or replace it. represent unbuilt regions by identity or no op boundaries, never provisional stand ins. consolidate only when multiple increments contain the same pattern and replacing those duplicates with a single shared component reduces overall complexity. "even if it is not perfect, prepare it to become so"
ways to reason about systems through observable relations rather than internal mechanisms.
computation viewed as a triplet: input process output.
each unit is a relation in which any two elements determine the third.
(input, transformation) -> output (output, transformation) -> input (input, output) -> transformation
this yields:
completeness holds when evaluation is pure and referentially transparent.
failure of triplet closure indicates partial observability.
computation viewed as a duplet: input output.
the internal process is omitted. only observable correspondence remains.
input -> output
this yields a minimal observable model.
focus on what flows and where it appears, independent of how it is produced.
describe mappings as relations between input and output positions.
two orthogonal choices span all cases:
four primitives cover all mappings:
compact descriptions of algorithms that preserve defining structure while omitting incidental detail.
an encoding of algorithmic identity provides a language independent description sufficient to distinguish algorithmic families.
it abstracts from machine details and retains only defining structure, recurrence, or partitioning.
good encodings are judged by:
constraints and conventions for mathematical expression.
questions that expose fundamental structure and test adequacy of representation.