# Five-Class OPERA Re-entry Invariant — Phase 1B Tests

Version: `1.0.0`
Status: `ROOT CONTRACT TEST / NON-RUNTIME`
Authority: `AGLA / CONTROL PLANE`

Run:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .\VALIDATE_FIVE_CLASS_OPERA_REENTRY_INVARIANT.ps1
```

## Positive contract

`CURRENT_EVIDENCE_ADMITS` requires TENET and ROTAS evidence that:

- names the current `invocation_epoch`;
- matches the OPERA, subject, and execution scope;
- identifies source plus version or hash;
- preserves provider status;
- records parsed/resolved current evidence or an explicit freshness proof; and
- resolves one effective ROTA or explicitly admitted composition.

AREPO may then admit OPERA. SATOR returns the result or suspension and current
trace; it cannot authorize the next epoch.

## Negative contract

The validator must reject:

1. `TENET_EVIDENCE_ABSENT_OR_STALE` — absent or stale TENET evidence;
2. `ROTAS_EVIDENCE_ABSENT_OR_STALE` — absent or stale ROTAS evidence;
3. `INVOCATION_EPOCH_MISMATCH` — either evidence record names another epoch;
4. `OPERA_SUBJECT_OR_SCOPE_MISMATCH` — evidence does not match the admitted
   OPERA, subject, and scope;
5. `PROVIDER_STATUS_ERASURE` — provider status is absent or erased;
6. `EFFECTIVE_ROTA_UNRESOLVED` — neither effective ROTA nor explicitly
   admitted composition is resolved;
7. `AREPO_SATOR_ONLY_CONTEXT` — admission/return traces appear without current
   TENET and ROTAS evidence; and
8. `PRIOR_ADMISSION_REUSE` — prior AREPO admission is reused in a new epoch.

## Non-expansion tests

- `CANONICAL_PROVIDER_SEQUENCE_PRESERVED` — the structural order remains
  `TENET -> ROTAS -> AREPO -> OPERA -> SATOR`.
- `ROOT_REMAINS_STRUCTURAL_NON_RUNTIME` — the law specifies admission
  structure and performs no execution.
- `EXTERNAL_PROFILE_BOUNDARY` — interface order, cache implementation,
  evidence shape, stack-specific traversal, derived pentagrams, and ROTAS
  candidate sets remain external.
- `PENTAGRAM_STATUS_PRESERVED` — the provisional pentagram remains candidate,
  non-runtime, no-authority-effect, and is not promoted to Graphus.
- `NO_SYSTEM_INDEX_OR_CLASS_LAW_EXPANSION` — this slice must not edit
  SYSTEM_INDEX, individual class laws, runtime, deployment, generated mirrors,
  profiles, or SVGs.
