Skip to content

ogma-cli: Augment overview command to report results of spec analysis. Refs #356.#357

Merged
ivanperez-keera merged 7 commits intonasa:developfrom
ivanperez-keera:develop-analysis
Feb 21, 2026
Merged

ogma-cli: Augment overview command to report results of spec analysis. Refs #356.#357
ivanperez-keera merged 7 commits intonasa:developfrom
ivanperez-keera:develop-analysis

Conversation

@ivanperez-keera
Copy link
Copy Markdown
Member

@ivanperez-keera ivanperez-keera commented Feb 19, 2026

Augment ogma-core to formally analyze specs and adjust ogma-cli's overview command to report the results of the analysis to the user, as prescribed in the solution proposed for #356.

@ivanperez-keera ivanperez-keera force-pushed the develop-analysis branch 6 times, most recently from e8c753e to 498621f Compare February 20, 2026 08:32
@ivanperez-keera ivanperez-keera changed the title ogma-cli: Adjust overview command to print information about spec analysis. Refs #356. ogma-cli: Augment overview command to print information about spec analysis. Refs #356. Feb 20, 2026
@ivanperez-keera ivanperez-keera changed the title ogma-cli: Augment overview command to print information about spec analysis. Refs #356. ogma-cli: Augment overview command to report results of spec analysis. Refs #356. Feb 20, 2026
@ivanperez-keera ivanperez-keera force-pushed the develop-analysis branch 4 times, most recently from 0b871ab to cf59faf Compare February 20, 2026 16:58
There is a need for Ogma to be able to analyze specifications and
determine if any of the properties in them could be removed, or cannot
be implemented. We should add to Ogma the capability of indicating to
users whether any of the input properties are always true or always
false. The former would indicate that they cannot be invalidated, and
the latter would indicate that they cannot be satisfied.

This commit adds a new module that formally analyzes specifications and
returns how many requirements are always true (and therefore do not add
value) or always false (and can never be realized).

The new module is added to the Cabal file as as an internal module of
the library, together with any additional dependencies.
nasa#356.

There is a need for Ogma to be able to analyze specifications and
determine if any of the properties in them could be removed, or cannot
be implemented. We should add to Ogma the capability of indicating to
users whether any of the input properties are always true or always
false. The former would indicate that they cannot be invalidated, and
the latter would indicate that they cannot be satisfied.

A prior commit added a new module that formally analyzes specifications
and returns how many requirements are always true or always false.

This commit modifies the overview command so that it collects and
returns the number of constant requirements together with other
information about the input specification.
…is. Refs nasa#356.

There is a need for Ogma to be able to analyze specifications and
determine if any of the properties in them could be removed, or cannot
be implemented. We should add to Ogma the capability of indicating to
users whether any of the input properties are always true or always
false. The former would indicate that they cannot be invalidated, and
the latter would indicate that they cannot be satisfied.

A prior commit modified the overview command in `ogma-core` to return
how many requirements are always true or always false.

This commit modifies the `overview` command in `ogma-cli` so that the
information about the number of constant requirements is printed to the
standard output.
There is a need for Ogma to be able to analyze specifications and
determine if any of the properties in them could be removed, or cannot
be implemented. We should add to Ogma the capability of indicating to
users whether any of the input properties are always true or always
false. The former would indicate that they cannot be invalidated, and
the latter would indicate that they cannot be satisfied.

A prior commit modified the `overview` command to print information
about how many requirements are always true or always false. The new
command leverages the library `copilot-theorem` and, specifically, its
ability to prove properties about Copilot specifications using the `z3`
theorem prover.

This commit updates the installation instructions to add `z3` to the
list of necessary dependencies for those cases where the user must
install `z3` before installing Ogma.
There is a need for Ogma to be able to analyze specifications and
determine if any of the properties in them could be removed, or cannot
be implemented. We should add to Ogma the capability of indicating to
users whether any of the input properties are always true or always
false. The former would indicate that they cannot be invalidated, and
the latter would indicate that they cannot be satisfied.

A prior commit modified the `overview` command to print information
about how many requirements are always true or always false.

This commit adds an example that can be used to demonstrate the new
feature. The new example contains three requirements, of which one is
always true and another is always false.
@ivanperez-keera
Copy link
Copy Markdown
Member Author

Change Manager: Verified that:

  • Solution is implemented:
  • Implementation is documented. Details:
    The new module includes documentation for the module and for all top-level functions. The README is updated to document new dependencies.
  • Change history is clear.
  • Commit messages are clear.
  • Changelogs are updated.
  • Examples are updated. Details:
    A new example is included that can be used to exemplify the new feature.
  • Author is internal or has provided signed CLA.
  • Required version bumps are evaluated. Details:
    Bump required; types exposed by the public interface of ogma-core have changed.

@ivanperez-keera ivanperez-keera merged commit b8d1711 into nasa:develop Feb 21, 2026
4 checks passed
@ivanperez-keera ivanperez-keera deleted the develop-analysis branch February 21, 2026 02:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant