# Module `B`

## Type `ClassExtendingTraitFromOtherModule`

* Trait method calls may not terminate (uses `@AssumeCrossModuleTermination`). MUST remove `@AssumeCrossModuleTermination` or justify.

## Type `TraitExtendingTraitFromOtherModule`

* Trait method calls may not terminate (uses `@AssumeCrossModuleTermination`). MUST remove `@AssumeCrossModuleTermination` or justify.
# Default module

## Top level

### Member `MinusBv8NoBody`

* Ghost declaration has no body and has an ensures clause. MUST provide a body or add `{:axiom}`.

### Member `LeftShiftBV128`

* Declaration has explicit `{:axiom}` attribute. SHOULD provide a proof or test.

### Member `MinusBv8Assume`

* Definition has `assume` statement in body. MUST replace with `assert` and prove or add `{:axiom}`.

### Member `GenerateBytes`

* Declaration with `{:extern}` has a ensures clause. MUST test external callee.

* Declaration with `{:extern}` has a requires clause. MUST test any external callers.

### Member `GenerateBytesWithModel`

* Declaration with `{:extern}` has a ensures clause. MUST test external callee.

* Declaration with `{:extern}` has a requires clause. MUST test any external callers.

### Member `GenerateBytesWrapper`

* Definition has `assume {:axiom}` statement in body. SHOULD replace with `assert` and prove.

### Member `GenerateBytesNoGuarantee`

* Declaration with `{:extern}` has a requires clause. MUST test any external callers.

### Member `ExternFunction`

* Function with `{:extern}` attribute. SHOULD use `method` with `modifies {}` instead.

* Declaration with `{:extern}` has a ensures clause. MUST test external callee.

### Member `DoesNotTerminate`

* Method may not terminate (uses `decreases *`). SHOULD provide a valid `decreases` clause.

### Member `ForallWithoutBody`

* Definition contains `forall` statement with no body. MUST provide a body.

### Member `LoopWithoutBody`

* Definition contains loop with no body. MUST provide a body.

### Member `AssumedConcurrentMethod`

* Reads clause has `{:assume_concurrent}` attribute. MUST manually review and test in a concurrent setting.

* Modifies clause has `{:assume_concurrent}` attribute. MUST manually review and test in a concurrent setting.

### Member `AxiomWithStuffInIt`

* Declaration has explicit `{:axiom}` attribute. SHOULD provide a proof or test.

* Definition has `assume` statement in body. MUST replace with `assert` and prove or add `{:axiom}`.

* Definition has `assume {:axiom}` statement in body. SHOULD replace with `assert` and prove.

* Definition contains `forall` statement with no body. MUST provide a body.

* Definition contains loop with no body. MUST provide a body.

### Member `AssertOnly`

* Assertion has explicit temporary `{:only}` attribute. MUST remove the `{:only}` attribute.

### Member `MethodOnly`

* Member has explicit temporary `{:only}` attribute. MUST remove the `{:only}` attribute.

### Member `GenerateBytesWithAxiom`

* Declaration has explicit `{:axiom}` attribute. SHOULD provide a proof or test.

### Member `ExternFunctionWithAxiom`

* Declaration has explicit `{:axiom}` attribute. SHOULD provide a proof or test.

* Function with `{:extern}` attribute. SHOULD use `method` with `modifies {}` instead.

## Type `T`

* Trait method calls may not terminate (uses `{:termination false}`). MUST remove `{:termination false}` or justify.
