Formal Functional Equivalence

This project provides a set of utilities for performing "formal functional equivalence," which is a static analysis-based technique to prove
8 Downloads
Updated 26 Apr 2023

Formal Functional Equivalence

Functional equivalence testing is a workflow which involves simulating two models, or a model and its generated code, and ensuring their outputs are equivalent. This is a common workflow in standards such as ISO26262, however this technique does not formally prove functional equivalence in all cases.

This project provides a set of utilities for performing "formal functional equivalence," which is a static analysis-based technique to prove that two Simulink® models are functionally equivalent. These utilities use Property Proving in Simulink Design Verifier™. If the two models are not formally functionally equivalent, Simulink Design Verifier will generate a counterexample for debugging.

Consider using formal functional equivalence when refactoring a model to improve its maintainability, standards compliance, clarity, code generation performance, or for other considerations, while maintaining the expected behavior.

Get Started

To Run:

  1. Open Formal_functional_equivalence.prj in MATLAB®.
  2. Run funcEquivExample.m to see an example

MathWorks Products

Requires MATLAB® release R2022a or newer

License

The license for is available in the license.txt file in this repository.

Copyright 2022 The MathWorks, Inc.

Cite As

Pat Canny (2024). Formal Functional Equivalence (https://github.com/mathworks/formal-functional-equivalence/releases/tag/v2.1), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2023a
Compatible with R2022a and later releases
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
2.1.0.0

See release notes for this release on GitHub: https://github.com/mathworks/formal-functional-equivalence/releases/tag/v2.1

2.0

See release notes for this release on GitHub: https://github.com/mathworks/formal-functional-equivalence/releases/tag/v2.0

1.1

See release notes for this release on GitHub: https://github.com/mathworks/formal-functional-equivalence/releases/tag/v1.1

1.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.