src/ZF/ex/Ntree.thy
changeset 6117 f9aad8ccd590
parent 1478 2b8c2a7547ab
child 8125 df502e820d07
equal deleted inserted replaced
6116:8ba2f25610f7 6117:f9aad8ccd590
    17 
    17 
    18 datatype
    18 datatype
    19   "ntree(A)" = Branch ("a: A", "h: (UN n:nat. n -> ntree(A))")
    19   "ntree(A)" = Branch ("a: A", "h: (UN n:nat. n -> ntree(A))")
    20   monos       "[[subset_refl, Pi_mono] MRS UN_mono]"    (*MUST have this form*)
    20   monos       "[[subset_refl, Pi_mono] MRS UN_mono]"    (*MUST have this form*)
    21   type_intrs  "[nat_fun_univ RS subsetD]"
    21   type_intrs  "[nat_fun_univ RS subsetD]"
    22   type_elims  "[UN_E]"
    22   type_elims   UN_E
    23 
    23 
    24 datatype
    24 datatype
    25   "maptree(A)" = Sons ("a: A", "h: maptree(A) -||> maptree(A)")
    25   "maptree(A)" = Sons ("a: A", "h: maptree(A) -||> maptree(A)")
    26   monos       "[FiniteFun_mono1]"       (*Use monotonicity in BOTH args*)
    26   monos        FiniteFun_mono1         (*Use monotonicity in BOTH args*)
    27   type_intrs  "[FiniteFun_univ1 RS subsetD]"
    27   type_intrs  "[FiniteFun_univ1 RS subsetD]"
    28 
    28 
    29 datatype
    29 datatype
    30   "maptree2(A,B)" = Sons2 ("a: A", "h: B -||> maptree2(A,B)")
    30   "maptree2(A,B)" = Sons2 ("a: A", "h: B -||> maptree2(A,B)")
    31   monos       "[subset_refl RS FiniteFun_mono]"
    31   monos       "[subset_refl RS FiniteFun_mono]"
    32   type_intrs  "[FiniteFun_in_univ']"
    32   type_intrs   FiniteFun_in_univ'
    33 
    33 
    34 end
    34 end