src/HOL/Tools/BNF/bnf_def.ML
changeset 56657 558afd429255
parent 56651 fc105315822a
child 56766 ba2fa4e99729
equal deleted inserted replaced
56656:7f9b686bf30a 56657:558afd429255
  1350     (*|> fold (uncurry (fn true => Sign.mandatory_path | false => Sign.add_path) o swap) qualifiers*)
  1350     (*|> fold (uncurry (fn true => Sign.mandatory_path | false => Sign.add_path) o swap) qualifiers*)
  1351     |> (fn thy => f (morph_bnf (Morphism.transfer_morphism thy) bnf) thy)
  1351     |> (fn thy => f (morph_bnf (Morphism.transfer_morphism thy) bnf) thy)
  1352     (*|> Sign.restore_naming thy*)
  1352     (*|> Sign.restore_naming thy*)
  1353   end;
  1353   end;
  1354 
  1354 
  1355 val bnf_interpretation = BNF_Interpretation.interpretation o with_repaired_path;
  1355 fun bnf_interpretation f = BNF_Interpretation.interpretation (with_repaired_path f);
  1356 
  1356 
  1357 fun register_bnf key bnf =
  1357 fun register_bnf key bnf =
  1358   Local_Theory.declaration {syntax = false, pervasive = true}
  1358   Local_Theory.declaration {syntax = false, pervasive = true}
  1359     (fn phi => Data.map (Symtab.update (key, morph_bnf phi bnf)))
  1359     (fn phi => Data.map (Symtab.update (key, morph_bnf phi bnf)))
  1360   #> Local_Theory.background_theory (BNF_Interpretation.data bnf);
  1360   #> Local_Theory.background_theory (BNF_Interpretation.data bnf);