---
title: "learning-memo-execution-memo-policy — Mova code model"
description: "Mova code model of world/src/knowledge/learning.rs: components with their labels, obernants and the model text."
url: "https://groupants.elamur.ai/free/en/mova/world/src/knowledge/learning.rs.groupant/execution.groupant/memo-policy.groupant/"
---
Elamur: [Mova](https://md.mova.elamur.ai/free/en/) · [Dictionary](https://md.dictionary.elamur.ai/free/en/) · [Research](https://md.research.elamur.ai/free/en/) · **Groupants**

This page as HTML: <https://groupants.elamur.ai/free/en/mova/world/src/knowledge/learning.rs.groupant/execution.groupant/memo-policy.groupant/>

# learning-memo-execution-memo-policy

The groupant beside world/src/knowledge/learning.rs in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.

## Facts

- **kind:** groupant_fragment
- **status:** partial source derived
- **source:** [`world/src/knowledge/learning.rs`](https://github.com/ElamurAI/mova-free/blob/main/world/src/knowledge/learning.rs)
- **source SHA-256:** `27a2ad1ec4a2548c…`
- **covers:** Memo enum and remember/valid implementation. (bytes 886–1702)
- **part of:** [learning-memo-execution](https://md.groupants.elamur.ai/free/en/mova/world/src/knowledge/learning.rs.groupant/execution.groupant/)
- **repository folder:** [`world/src/knowledge/learning.rs.groupant/execution.groupant/memo-policy.groupant`](https://github.com/ElamurAI/mova-free/tree/main/world/src/knowledge/learning.rs.groupant/execution.groupant/memo-policy.groupant)
- **repository commit:** `855da7bd4a7b`

> **Implementation material.** A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.

## Components

| component | label | where |
|---|---|---|
| **approximant** | partial | `model.md` |
| **ast** | partial | `../../syntax.json` |
| **descriptant** | present | `model.md` |
| **invariant** | partial | `model.md` |
| **tests** | references only | [tests](#tests) |

## Obernants

The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.

| id | type | label | where |
|---|---|---|---|
| `excluded-traces` | behavior_complement | partial source derived | [Behavior complement](#behavior-complement) |
| `compatible-antecedents` | reverse_reconstruction | partial source derived | [Reverse reconstruction](#reverse-reconstruction) |
| `weight-subspace-quotient` | weight_subspace_quotient | partial source derived | [Specialized relation](#specialized-relation) |

## Model text


### model

## execution/memo-policy fragment

Source coverage: UTF-8 bytes [886, 1702) in learning.rs at the manifest digest. Memo enum and remember/valid implementation. This is a source-derived partial model, not a new runtime unit.

### Forward approximant

remember yields Inert when !understood, count exists, or correct option has no best support; otherwise Scored stores the Answer and its current ask block. valid maps Empty to false, Inert to true, and Scored to exact equality of the stored/current selected block.

### Invariant

A supported currently-correct answer is still Scored. Inert eligibility is structural under the fixed-world assumption. Equality of a block is a validity predicate, not a proof about every dependency of an arbitrary evaluator.

### Cost approximation

Scored remember copies W weights and valid compares up to W entries; Empty/Inert operations are O(1). Answer and Vec allocations contribute storage.

### Behavior complement

Let U be normal remember/valid input-output observations with valid correct-option indices and readable weight blocks, and R the actual relation restricted to U. The candidate inner approximant C_hat to U \ R contains valid(Empty)=true, valid(Scored)=true for unequal selected blocks, or remember classifying a supported understood non-count answer as Inert. This is an explicit excluded relation, not merely a list of negative tests; it does not enumerate the entire complement or prove completeness.

### Reverse reconstruction

B(Inert) includes all answers satisfying at least one eligibility disjunct, without selecting which disjunct held. B(valid=true) includes Inert and matching Scored states. A boolean cannot reconstruct the answer, world or weight history.

### Specialized relation

For a fixed ask, w~v iff their VIAS.len()*NF selected blocks agree. Scored validity is constant on these classes; answer equivalence additionally requires evaluator dependence only on that block and fixed world/options.

### Epoch memory and limits

2026-10-29: decomposed existing source without moving code. Existing root observations and all twenty root obernants remain authoritative. Child anchors select source-bound partial syntax nodes; name resolution and macro expansion remain absent. No new runtime test or measured performance gain is claimed.

### tests

#### Existing bounded oracles

Existing changed_winner_invalidates_but_another_weight_block_does_not probes an unchanged selected block, a changed winner and the stale cached-answer negative control. This is a concrete fixture, not a universal dependency proof.

Run the existing suite from the repository root:

`cargo test -p world knowledge::learning::tests --lib --locked`

Test definitions are in ../../../learning.rs. These are references to existing oracles; this fragment adds no executable test. Historical execution evidence is retained in ../../tests.md. The fixture's simplified evaluator does not establish full parser/inference correspondence.
