==========================================
reduce in META-LEVEL : upModule('SFOO, false) .
rewrites: 1
result StratModule: smod 'SFOO is
  including 'BOOL .
  protecting 'FOO .
  sorts none .
  none
  none
  none
  none
  none
  strat 'ac : nil @ 'Foo [none] .
  sd 'ac[[empty]] := 'ab[none]{empty} ; 'bc[none]{empty} [none] .
endsm
==========================================
reduce in META-LEVEL : upModule('SFOO, true) .
rewrites: 1
result StratModule: smod 'SFOO is
  nil
  sorts 'Bool ; 'Foo .
  none
  op '_=/=_ : 'Universal 'Universal -> 'Bool [prec(51) poly(1 2) special(
    id-hook('EqualitySymbol, nil) 
    term-hook('equalTerm, 'false.Bool) 
    term-hook('notEqualTerm, 'true.Bool))] .
  op '_==_ : 'Universal 'Universal -> 'Bool [prec(51) poly(1 2) special(
    id-hook('EqualitySymbol, nil) 
    term-hook('equalTerm, 'true.Bool) 
    term-hook('notEqualTerm, 'false.Bool))] .
  op '_and_ : 'Bool 'Bool -> 'Bool [assoc comm prec(55)] .
  op '_implies_ : 'Bool 'Bool -> 'Bool [prec(61) gather('e 'E)] .
  op '_or_ : 'Bool 'Bool -> 'Bool [assoc comm prec(59)] .
  op '_xor_ : 'Bool 'Bool -> 'Bool [assoc comm prec(57)] .
  op 'a : nil -> 'Foo [none] .
  op 'b : nil -> 'Foo [none] .
  op 'c : nil -> 'Foo [none] .
  op 'false : nil -> 'Bool [ctor special(
    id-hook('SystemFalse, nil))] .
  op 'if_then_else_fi : 'Bool 'Universal 'Universal -> 'Universal [poly(2 3 0)
    special(
    id-hook('BranchSymbol, nil) 
    term-hook('1, 'true.Bool) 
    term-hook('2, 'false.Bool))] .
  op 'not_ : 'Bool -> 'Bool [prec(53)] .
  op 'true : nil -> 'Bool [ctor special(
    id-hook('SystemTrue, nil))] .
  none
  eq '_and_['A:Bool, 'A:Bool] = 'A:Bool [none] .
  eq '_and_['A:Bool, '_xor_['B:Bool, 'C:Bool]] = '_xor_['_and_['A:Bool,
    'B:Bool], '_and_['A:Bool, 'C:Bool]] [none] .
  eq '_and_['false.Bool, 'A:Bool] = 'false.Bool [none] .
  eq '_and_['true.Bool, 'A:Bool] = 'A:Bool [none] .
  eq '_implies_['A:Bool, 'B:Bool] = 'not_['_xor_['A:Bool, '_and_['A:Bool,
    'B:Bool]]] [none] .
  eq '_or_['A:Bool, 'B:Bool] = '_xor_['_and_['A:Bool, 'B:Bool], '_xor_['A:Bool,
    'B:Bool]] [none] .
  eq '_xor_['A:Bool, 'A:Bool] = 'false.Bool [none] .
  eq '_xor_['false.Bool, 'A:Bool] = 'A:Bool [none] .
  eq 'not_['A:Bool] = '_xor_['true.Bool, 'A:Bool] [none] .
  rl 'a.Foo => 'b.Foo [label('ab)] .
  rl 'b.Foo => 'c.Foo [label('bc)] .
  strat 'ac : nil @ 'Foo [none] .
  sd 'ac[[empty]] := 'ab[none]{empty} ; 'bc[none]{empty} [none] .
endsm
==========================================
reduce in META-LEVEL : upModule('STRIV, false) .
rewrites: 1
result StratTheory: sth 'STRIV is
  including 'TRIV .
  sorts none .
  none
  none
  none
  none
  none
  strat 'st : nil @ 'Elt [none] .
  none
endsth
==========================================
reduce in META-LEVEL : upStratDecls('STRIV, true) .
rewrites: 1
result StratDecl: strat 'st : nil @ 'Elt [none] .
==========================================
reduce in META-LEVEL : upSds('SFOO, false) .
rewrites: 1
result StratDefinition: sd 'ac[[empty]] := 'ab[none]{empty} ; 'bc[none]{empty}
    [none] .
==========================================
reduce in META-LEVEL : upView('SFoo) .
rewrites: 1
result View: view 'SFoo from 'STRIV to 'SFOO is
  sort 'Elt to 'Foo .
  none
  strat 'st to 'ac .
endv
==========================================
reduce in META-LEVEL : upView('SFoo2) .
rewrites: 1
result View: view 'SFoo2 from 'STRIV to 'FOO is
  sort 'Elt to 'Foo .
  none
  strat 'st[[empty]] to expr 'ab[none]{empty} .
endv
==========================================
reduce in META-LEVEL : metaSrewrite(upModule('SFOO, false), 'a.Foo, 'ac[[
    empty]] | 'ab[none]{empty}, breadthFirst, 0) .
rewrites: 3
result ResultPair: {'b.Foo, 'Foo}
==========================================
reduce in META-LEVEL : metaSrewrite(['SFOO], 'a.Foo, 'ac[[empty]] | 'ab[none]{
    empty}, breadthFirst, 0) .
rewrites: 3
result ResultPair: {'b.Foo, 'Foo}
==========================================
reduce in META-LEVEL : metaSrewrite(['SFOO], 'a.Foo, 'ac[[empty]] | 'ab[none]{
    empty}, breadthFirst, 0) .
rewrites: 2
result ResultPair: {'b.Foo, 'Foo}
==========================================
reduce in META-LEVEL : metaSrewrite(['SFOO], 'a.Foo, 'ac[[empty]] | 'ab[none]{
    empty}, breadthFirst, 1) .
rewrites: 4
result ResultPair: {'c.Foo, 'Foo}
==========================================
reduce in META-LEVEL : metaSrewrite(['SFOO], 'a.Foo, 'ac[[empty]] | 'ab[none]{
    empty}, breadthFirst, 2) .
rewrites: 2
result ResultPair?: (failure).ResultPair?
==========================================
reduce in META-LEVEL : metaSrewrite(['SFOO], 'a.Foo, 'ac[[empty]] | 'ab[none]{
    empty}, depthFirst, 1) .
rewrites: 5
result ResultPair: {'b.Foo, 'Foo}
==========================================
reduce in META-LEVEL : metaSrewrite(['SFOO], 'a.Foo, 'ac[[empty]] | 'ab[none]{
    empty}, depthFirst, 0) .
rewrites: 4
result ResultPair: {'c.Foo, 'Foo}
==========================================
reduce in META-LEVEL : metaSrewrite(mod 'INC is
  protecting 'NAT .
  sorts none .
  none
  none
  none
  none
  rl 'N:Nat => 's_['N:Nat] [label('inc)] .
endm, '0.Nat, ('inc[none]{empty}) *, breadthFirst, 8) .
rewrites: 29
result ResultPair: {'s_^8['0.Zero], 'NzNat}
==========================================
reduce in META-LEVEL : metaSrewrite(['SFOO], 'a.Foo, 'bad-rule[none]{empty},
    depthFirst, 0) .
rewrites: 2
result ResultPair?: (failure).ResultPair?
==========================================
reduce in META-LEVEL : metaSrewrite(['SFOO], 'a.Foo, 'bad-strat[[empty]],
    depthFirst, 0) .
rewrites: 1
result [ResultPair?]: metaSrewrite(sth 'SFOO is
  including 'SFOO .
  sorts none .
  none
  none
  none
  none
  none
  none
  none
endsth, 'a.Foo, 'bad-strat[[empty]], depthFirst, 0)
==========================================
reduce in META-LEVEL : metaParseStrategy(['SFOO], none, 'ac '| 'ab) .
rewrites: 2
result Strategy: 'ac[[empty]] | 'ab[none]{empty}
==========================================
reduce in META-LEVEL : metaParseStrategy(['NAT], 'M:Nat ; 'N:Nat, 'match 'N
    's.t. 'M ':= '5 '/\ 'N '> 'M) .
rewrites: 2
result Strategy: match 'N:Nat s.t. ('M:Nat := 's_^5['0.Zero] /\ '_>_['N:Nat,
    'M:Nat] = 'true.Bool)
==========================================
reduce in META-LEVEL : metaParseStrategy(['SFOO], 'N:Nat, 'idle) .
rewrites: 1
result [StrategyList,Strategy?]: metaParseStrategy(sth 'SFOO is
  including 'SFOO .
  sorts none .
  none
  none
  none
  none
  none
  none
  none
endsth, 'N:Nat, 'idle)
==========================================
reduce in META-LEVEL : metaParseStrategy(['SFOO], none, 'ab ';) .
rewrites: 2
result Strategy?: noStratParse(2)
==========================================
reduce in META-LEVEL : metaPrettyPrintStrategy(['SFOO], none, 'ac[[empty]] ;
    'ab[none]{empty}, none) .
rewrites: 2
result NeTypeList: 'ac '; 'ab
==========================================
reduce in META-LEVEL : metaPrettyPrintStrategy(['NAT], 'N:Nat, match 'N:Nat
    s.t. ('M:Nat := 's_^5['0.Zero] /\ '_>_['N:Nat, 'M:Nat] = 'true.Bool),
    number) .
rewrites: 2
result NeQidList: 'match 'N 's.t. 'M:Nat ':= '5 '/\ '_>_ '`( 'N '`, 'M:Nat '`)
    '= 'true
==========================================
reduce in META-LEVEL : metaPrettyPrintStrategy(smod 'CONFLICT is
  protecting 'NAT .
  sorts none .
  none
  none
  none
  none
  rl 'N:Nat => '0.Zero [label('cancel)] .
  strat 'cancel : nil @ 'Nat [none] .
  sd 'cancel[[empty]] := match '0.Zero s.t. nil or-else 'cancel[none]{empty} [
    none] .
endsm, none, 'cancel[[empty]] | 'cancel[none]{empty}, none) .
rewrites: 1
result NeTypeList: 'cancel '`( '`) '| 'cancel
Bye.
