# Lie Symmetry-Based Local Observability and Identifiability Analysis

This repository contains a **Maple** implementation for Lie symmetry-based local observability and structural local identifiability analysis of nonlinear control systems.

The implementation includes a core utility script and multiple illustrative examples demonstrating its application to different classes of nonlinear systems. This software was developed as part of a master's project and accompanies the results presented in the associated master's thesis.

## Thesis Information

This software supports the findings in the following thesis:

*   **Title:** Deciding Local Observability with Lie Symmetries
*   **Author:** Nick Baberuxki
*   **Institution:** University of Kassel
*   **Date:** May 2026

The thesis will be made publicly available on KOBRA (Kasseler Online-Bibliothek, Repository und Archiv) in the near future.

## Prerequisites

This software requires the proprietary commercial software **Maple**. All worksheets and scripts have been tested under **Maple 2025**.

### Required Packages

In addition to the base Maple installation, the **Janet** package developed at *Lehrstuhl B für Mathematik, RWTH Aachen* is required. An installation and usage guide can be found [here](https://www.art.rwth-aachen.de/cms/mathb/forschung/~rmyw/mathematische-software/).

*(Note: The worksheets also utilize the DifferentialThomas package, which is part of the standard Maple library.)*

## Installation & Configuration

1.  **Download this project.**
2.  **Install Janet:** Download and install the Janet package according to the RWTH guide.
3.  **Configure Paths:**
    The example worksheets are configured to load the Janet library from a subfolder named `Janet/` within the main directory.

    *Option A (Local Folder):* Place the Janet library files into a folder named `Janet` inside this repository root.
    *Option B (Global Installation):* Modify the `libname` path in the `.mw` worksheets to point to your global Janet installation directory.

    The worksheets use Option A and load dependencies with the following logic:
    ```maple
    libname := libname, "./Janet":
    with(Janet):
    ```

## Usage

The repository contains **Maple Worksheets (`.mw`)** for various models.

1.  Open **Maple**.
2.  Open any of the `.mw` files listed in the [Structure](#structure) section.
3.  Execute the worksheet cells sequentially.
4.  The worksheet will go through the workflow stated in the thesis to determine the system's local observability/identifiability status.

## Structure

The core utility script `symmetry-analysis-utilities.mpl` implements functions used to set up the infinitesimal determining system. It is automatically loaded by the example worksheets.

```text
.
├── README.md                       # This file
├── symmetry-analysis-utilities.mpl # Core utility script
├── epidemic-seiqr-E.mw             # Example: Epidemic output Q
├── epidemic-seiqr-EN.mw            # Example: Epidemic output Q,N
├── goodwin-G.mw                    # Example: Goodwin Model
├── goodwin-RG.mw                   # Example: Reduced Goodwin Model
├── hiv-infection-model-HIV.mw      # Example: HIV Model
├── hiv-infection-model-HIVd.mw     # Example: HIV under drug Model
├── lotka-volterra-LV.mw            # Example: Lotka-Volterra Model
└── lotka-volterra-LVi.mw           # Example: Lotka-Volterra with input Model
```

*Note: For detailed mathematical definitions and references of the models, please refer to the [Thesis](#thesis-information).*

## License

This project is licensed under the [MIT License](LICENSE).
