//////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2010, 2026 Contributors to the Eclipse Foundation
//
// See the NOTICE file(s) distributed with this work for additional
// information regarding copyright ownership.
//
// This program and the accompanying materials are made available
// under the terms of the MIT License which is available at
// https://opensource.org/licenses/MIT
//
// SPDX-License-Identifier: MIT
//////////////////////////////////////////////////////////////////////////////

include::../_part_attributes.asciidoc[]

:leveloffset: -2

[[tools-cif2cif-chapter-relabel-supervisors-as-plants]]
== Relabel supervisors as plants

indexterm:[CIF to CIF transformer,relabel supervisors as plants]
indexterm:[relabel supervisors as plants]
indexterm:[supervisor, as plant]
This CIF to CIF transformation relabels <<lang-tut-synthesis-plant-req-sup,supervisors>> as <<lang-tut-synthesis-plant-req-sup,plants>>.

=== Supported specifications

This transformation supports all CIF specifications.

=== Preprocessing

n/a

indexterm:[relabel supervisors as plants,implementation]

=== Implementation details

This CIF to CIF transformation relabels:

* Supervisor automaton definitions as plant automaton definitions.
* Supervisor automata as plant automata.
* Supervisor invariants as plant invariants.

For instance, consider the following partial CIF specification:

[source, cif]
----
supervisor button:
  location off:
    initial;
    marked;
    edge u_on goto on;
  location on:
    edge u_off goto off;
end

supervisor invariant actuator.c_on needs button.pushed;
----

It gets transformed to:

[source, cif]
----
plant button:
  location off:
    initial;
    marked;
    edge u_on goto on;
  location on:
    edge u_off goto off;
end

plant invariant actuator.c_on needs button.pushed;
----

=== Renaming

n/a

=== Size considerations

Automata and invariants may get a different supervisory kind.
This does not change the size of the specification.

=== Optimality

n/a

=== Annotations

This transformation does not process, add, or remove any annotations.
