lemma 0.9.2

A pure, declarative language for business rules.
---
nav_title: Learn
nav_order: 30
---

# Learn Lemma

A guided path from your first Spec to composing Specs across time and registries. Read the chapters in order, or jump to a topic.

### 1. Getting started

Start with [Getting started](getting_started.md). It walks you through installing Lemma, writing your first Spec, and running it from the CLI.

### 2. Specs, Data, and Rules

[Specs, Data, and Rules](specs_data_rules.md) explains how a Spec is structured. You learn about open inputs, constraints, and how Rules reference each other.

### 3. Conditional logic

[Conditional logic](conditional_logic.md) covers Unless chains and boolean literals, which is how a Rule chooses between outcomes.

### 4. Types and units

[Types and units](types_and_units.md) is the widest chapter. It covers literals, operators, the stdlib units, conversions, ranges, and dates, and it introduces [Veto](types_and_units.md#veto).

### 5. Extending Data

[Extending Data](extending_data.md) shows how to build on parent types, apply Data commands, and reuse definitions across Specs.

### 6. Composing Specs

[Composing Specs](composing_specs.md) brings everything together with Uses, temporal versions, planning checks, repositories, and the registry.

### 7. Numeric precision

[Numeric precision](precision.md) closes the guide by explaining exact rational arithmetic and how clients should parse the numbers Lemma returns.

### Language reference

For exhaustive syntax, operators, and Data commands, see the [Language reference](../reference/readme.md).