33 fun below_const T = Const (@{const_name below}, T --> T --> HOLogic.boolT); |
33 fun below_const T = Const (@{const_name below}, T --> T --> HOLogic.boolT); |
34 |
34 |
35 val natT = @{typ nat}; |
35 val natT = @{typ nat}; |
36 val udomT = @{typ udom}; |
36 val udomT = @{typ udom}; |
37 fun alg_deflT T = Type (@{type_name alg_defl}, [T]); |
37 fun alg_deflT T = Type (@{type_name alg_defl}, [T]); |
38 fun cfunT (T, U) = Type (@{type_name "->"}, [T, U]); |
38 fun cfunT (T, U) = Type (@{type_name cfun}, [T, U]); |
39 fun emb_const T = Const (@{const_name emb}, cfunT (T, udomT)); |
39 fun emb_const T = Const (@{const_name emb}, cfunT (T, udomT)); |
40 fun prj_const T = Const (@{const_name prj}, cfunT (udomT, T)); |
40 fun prj_const T = Const (@{const_name prj}, cfunT (udomT, T)); |
41 fun approx_const T = Const (@{const_name approx}, natT --> cfunT (T, T)); |
41 fun approx_const T = Const (@{const_name approx}, natT --> cfunT (T, T)); |
42 |
42 |
43 fun LAM_const (T, U) = Const (@{const_name Abs_CFun}, (T --> U) --> cfunT (T, U)); |
43 fun LAM_const (T, U) = Const (@{const_name Abs_CFun}, (T --> U) --> cfunT (T, U)); |