-- repmin example syntax { finMin |- t : !gathMin ~> !t' }; syntax node { 1 :-: 2 }; syntax leaf { <1> }; let testtree = ((<8>) :-: (<5>)) :-: ((<3>) :-: (<9>)); let repmin = derivation inputs t inputs finMin visit disperse outputs gathMin outputs t' visit disperse { branch node: establish { m |- l : lm ~> l' }; establish { m |- r : rm ~> r' }; -------- establish { m |- l :-: r : min lm rm ~> l' :-: r' }; branch leaf: -------- establish { min |- : i ~> }; }; derivation inputs args outputs t { branch main: establish repmin { m |- testtree : m ~> this.t }; }