src/HOL/Nominal/nominal_permeq.ML
changeset 41489 8e2b8649507d
parent 39557 fe5722fce758
child 42364 8c674b3b8e44
equal deleted inserted replaced
41488:2110405ed53b 41489:8e2b8649507d
   300             val s = fold_rev (fn v => fn s =>
   300             val s = fold_rev (fn v => fn s =>
   301                 HOLogic.pair_const (fastype_of1 (Ts, v)) (fastype_of1 (Ts, s)) $ v $ s)
   301                 HOLogic.pair_const (fastype_of1 (Ts, v)) (fastype_of1 (Ts, s)) $ v $ s)
   302               vs HOLogic.unit;
   302               vs HOLogic.unit;
   303             val s' = list_abs (ps,
   303             val s' = list_abs (ps,
   304               Const ("Nominal.supp", fastype_of1 (Ts, s) -->
   304               Const ("Nominal.supp", fastype_of1 (Ts, s) -->
   305                 snd (split_last (binder_types T)) --> HOLogic.boolT) $ s);
   305                 List.last (binder_types T) --> HOLogic.boolT) $ s);
   306             val supports_rule' = Thm.lift_rule goal supports_rule;
   306             val supports_rule' = Thm.lift_rule goal supports_rule;
   307             val _ $ (_ $ S $ _) =
   307             val _ $ (_ $ S $ _) =
   308               Logic.strip_assums_concl (hd (prems_of supports_rule'));
   308               Logic.strip_assums_concl (hd (prems_of supports_rule'));
   309             val supports_rule'' = Drule.cterm_instantiate
   309             val supports_rule'' = Drule.cterm_instantiate
   310               [(cert (head_of S), cert s')] supports_rule'
   310               [(cert (head_of S), cert s')] supports_rule'