Zulip Chat Archive

Stream: maths

Topic: subalgebra.comm_ring


Chris Hughes (Oct 11 2019 at 00:07):

I'm getting the following type class cycle. Is there an easy solution?

[class_instances] (1) ?x_15 : comm_ring ?x_14 := @subalgebra.comm_ring ?x_26 ?x_27 ?x_28 ?x_29 ?x_30 ?x_31
[class_instances] (2) ?x_29 : comm_ring ?x_27 := @subalgebra.comm_ring ?x_32 ?x_33 ?x_34 ?x_35 ?x_36 ?x_37
[class_instances] (3) ?x_35 : comm_ring ?x_33 := @subalgebra.comm_ring ?x_38 ?x_39 ?x_40 ?x_41 ?x_42 ?x_43
[class_instances] (4) ?x_41 : comm_ring ?x_39 := @subalgebra.comm_ring ?x_44 ?x_45 ?x_46 ?x_47 ?x_48 ?x_49
[class_instances] (5) ?x_47 : comm_ring ?x_45 := @subalgebra.comm_ring ?x_50 ?x_51 ?x_52 ?x_53 ?x_54 ?x_55
[class_instances] (6) ?x_53 : comm_ring ?x_51 := @subalgebra.comm_ring ?x_56 ?x_57 ?x_58 ?x_59 ?x_60 ?x_61
[class_instances] (7) ?x_59 : comm_ring ?x_57 := @subalgebra.comm_ring ?x_62 ?x_63 ?x_64 ?x_65 ?x_66 ?x_67
[class_instances] (8) ?x_65 : comm_ring ?x_63 := @subalgebra.comm_ring ?x_68 ?x_69 ?x_70 ?x_71 ?x_72 ?x_73
[class_instances] (9) ?x_71 : comm_ring ?x_69 := @subalgebra.comm_ring ?x_74 ?x_75 ?x_76 ?x_77 ?x_78 ?x_79

Chris Hughes (Oct 11 2019 at 00:10):

the full message is
[class_instances] class-instance resolution trace [class_instances] (0) ?x_0 : @vector_space ℝ ℂ (@normed_field.to_discrete_field ℝ normed_field.normed_field) (@normed_group.to_add_comm_group ℂ (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ complex.normed_field))) := @normed_space.to_vector_space ?x_1 ?x_2 ?x_3 ?x_4 ?x_5 [class_instances] class-instance resolution trace [class_instances] (0) ?x_6 : normed_field ℝ := complex.normed_field failed is_def_eq [class_instances] (0) ?x_6 : normed_field ℝ := normed_field.normed_field [class_instances] class-instance resolution trace [class_instances] (0) ?x_7 : normed_group ℂ := @normed_ring.to_normed_group ?x_8 ?x_9 [class_instances] (1) ?x_9 : normed_ring ℂ := @normed_field.to_normed_ring ?x_10 ?x_11 [class_instances] (2) ?x_11 : normed_field ℂ := complex.normed_field [class_instances] (1) ?x_3 : normed_field ℝ := complex.normed_field failed is_def_eq [class_instances] (1) ?x_3 : normed_field ℝ := normed_field.normed_field [class_instances] (1) ?x_4 : normed_group ℂ := @normed_ring.to_normed_group ?x_12 ?x_13 [class_instances] (2) ?x_13 : normed_ring ℂ := @normed_field.to_normed_ring ?x_14 ?x_15 [class_instances] (3) ?x_15 : normed_field ℂ := complex.normed_field [class_instances] (1) ?x_5 : @normed_space ℝ ℂ normed_field.normed_field (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ complex.normed_field)) := @fintype.normed_space ?x_16 ?x_17 ?x_18 ?x_19 ?x_20 ?x_21 ?x_22 failed is_def_eq [class_instances] (1) ?x_5 : @normed_space ℝ ℂ normed_field.normed_field (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ complex.normed_field)) := @prod.normed_space ?x_23 ?x_24 ?x_25 ?x_26 ?x_27 ?x_28 ?x_29 ?x_30 failed is_def_eq [class_instances] (1) ?x_5 : @normed_space ℝ ℂ normed_field.normed_field (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ complex.normed_field)) := @normed_field.to_normed_space ?x_31 ?x_32 failed is_def_eq [class_instances] (3) ?x_15 : normed_field ℂ := normed_field.normed_field failed is_def_eq [class_instances] (3) ?x_15 : normed_field ℂ := @nondiscrete_normed_field.to_normed_field ?x_16 ?x_17 [class_instances] (4) ?x_17 : nondiscrete_normed_field ℂ := complex.nondiscrete_normed_field [class_instances] (1) ?x_5 : @normed_space ℝ ℂ normed_field.normed_field (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ (@nondiscrete_normed_field.to_normed_field ℂ complex.nondiscrete_normed_field))) := @fintype.normed_space ?x_18 ?x_19 ?x_20 ?x_21 ?x_22 ?x_23 ?x_24 failed is_def_eq [class_instances] (1) ?x_5 : @normed_space ℝ ℂ normed_field.normed_field (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ (@nondiscrete_normed_field.to_normed_field ℂ complex.nondiscrete_normed_field))) := @prod.normed_space ?x_25 ?x_26 ?x_27 ?x_28 ?x_29 ?x_30 ?x_31 ?x_32 failed is_def_eq [class_instances] (1) ?x_5 : @normed_space ℝ ℂ normed_field.normed_field (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ (@nondiscrete_normed_field.to_normed_field ℂ complex.nondiscrete_normed_field))) := @normed_field.to_normed_space ?x_33 ?x_34 failed is_def_eq [class_instances] (4) ?x_17 : nondiscrete_normed_field ℂ := normed_field.nondiscrete_normed_field failed is_def_eq [class_instances] (2) ?x_13 : normed_ring ℂ := @prod.normed_ring ?x_14 ?x_15 ?x_16 ?x_17 failed is_def_eq [class_instances] (1) ?x_4 : normed_group ℂ := @fintype.normed_group ?x_12 ?x_13 ?x_14 ?x_15 failed is_def_eq [class_instances] (1) ?x_4 : normed_group ℂ := @prod.normed_group ?x_16 ?x_17 ?x_18 ?x_19 failed is_def_eq [class_instances] (1) ?x_3 : normed_field ℝ := @nondiscrete_normed_field.to_normed_field ?x_12 ?x_13 [class_instances] (2) ?x_13 : nondiscrete_normed_field ℝ := complex.nondiscrete_normed_field failed is_def_eq [class_instances] (2) ?x_13 : nondiscrete_normed_field ℝ := normed_field.nondiscrete_normed_field [class_instances] (1) ?x_4 : normed_group ℂ := @normed_ring.to_normed_group ?x_14 ?x_15 [class_instances] (2) ?x_15 : normed_ring ℂ := @normed_field.to_normed_ring ?x_16 ?x_17 [class_instances] (3) ?x_17 : normed_field ℂ := complex.normed_field [class_instances] (1) ?x_5 : @normed_space ℝ ℂ (@nondiscrete_normed_field.to_normed_field ℝ normed_field.nondiscrete_normed_field) (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ complex.normed_field)) := @fintype.normed_space ?x_18 ?x_19 ?x_20 ?x_21 ?x_22 ?x_23 ?x_24 failed is_def_eq [class_instances] (1) ?x_5 : @normed_space ℝ ℂ (@nondiscrete_normed_field.to_normed_field ℝ normed_field.nondiscrete_normed_field) (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ complex.normed_field)) := @prod.normed_space ?x_25 ?x_26 ?x_27 ?x_28 ?x_29 ?x_30 ?x_31 ?x_32 failed is_def_eq [class_instances] (1) ?x_5 : @normed_space ℝ ℂ (@nondiscrete_normed_field.to_normed_field ℝ normed_field.nondiscrete_normed_field) (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ complex.normed_field)) := @normed_field.to_normed_space ?x_33 ?x_34 failed is_def_eq [class_instances] (3) ?x_17 : normed_field ℂ := normed_field.normed_field failed is_def_eq [class_instances] (3) ?x_17 : normed_field ℂ := @nondiscrete_normed_field.to_normed_field ?x_18 ?x_19 [class_instances] (4) ?x_19 : nondiscrete_normed_field ℂ := complex.nondiscrete_normed_field [class_instances] (1) ?x_5 : @normed_space ℝ ℂ (@nondiscrete_normed_field.to_normed_field ℝ normed_field.nondiscrete_normed_field) (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ (@nondiscrete_normed_field.to_normed_field ℂ complex.nondiscrete_normed_field))) := @fintype.normed_space ?x_20 ?x_21 ?x_22 ?x_23 ?x_24 ?x_25 ?x_26 failed is_def_eq [class_instances] (1) ?x_5 : @normed_space ℝ ℂ (@nondiscrete_normed_field.to_normed_field ℝ normed_field.nondiscrete_normed_field) (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ (@nondiscrete_normed_field.to_normed_field ℂ complex.nondiscrete_normed_field))) := @prod.normed_space ?x_27 ?x_28 ?x_29 ?x_30 ?x_31 ?x_32 ?x_33 ?x_34 failed is_def_eq [class_instances] (1) ?x_5 : @normed_space ℝ ℂ (@nondiscrete_normed_field.to_normed_field ℝ normed_field.nondiscrete_normed_field) (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ (@nondiscrete_normed_field.to_normed_field ℂ complex.nondiscrete_normed_field))) := @normed_field.to_normed_space ?x_35 ?x_36 failed is_def_eq [class_instances] (4) ?x_19 : nondiscrete_normed_field ℂ := normed_field.nondiscrete_normed_field failed is_def_eq [class_instances] (2) ?x_15 : normed_ring ℂ := @prod.normed_ring ?x_16 ?x_17 ?x_18 ?x_19 failed is_def_eq [class_instances] (1) ?x_4 : normed_group ℂ := @fintype.normed_group ?x_14 ?x_15 ?x_16 ?x_17 failed is_def_eq [class_instances] (1) ?x_4 : normed_group ℂ := @prod.normed_group ?x_18 ?x_19 ?x_20 ?x_21 failed is_def_eq [class_instances] (0) ?x_0 : @vector_space ℝ ℂ (@normed_field.to_discrete_field ℝ normed_field.normed_field) (@normed_group.to_add_comm_group ℂ (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ complex.normed_field))) := @continuous_linear_map.vector_space ?x_1 ?x_2 ?x_3 ?x_4 ?x_5 ?x_6 ?x_7 ?x_8 ?x_9 ?x_10 ?x_11 ?x_12 ?x_13 failed is_def_eq [class_instances] (0) ?x_0 : @vector_space ℝ ℂ (@normed_field.to_discrete_field ℝ normed_field.normed_field) (@normed_group.to_add_comm_group ℂ (@normed_ring.to_normed_group ℂ (@normed_field.to_normed_ring ℂ complex.normed_field))) := @algebra.vector_space ?x_14 ?x_15 ?x_16 ?x_17 ?x_18 ?x_19 ?x_20 [class_instances] class-instance resolution trace [class_instances] (0) ?x_21 : ring ℂ := @normed_ring.to_ring ?x_22 ?x_23 [class_instances] (1) ?x_23 : normed_ring ℂ := @normed_field.to_normed_ring ?x_24 ?x_25 [class_instances] (2) ?x_25 : normed_field ℂ := complex.normed_field [class_instances] (1) ?x_15 : comm_ring ?x_14 := @subalgebra.comm_ring ?x_26 ?x_27 ?x_28 ?x_29 ?x_30 ?x_31 [class_instances] (2) ?x_29 : comm_ring ?x_27 := @subalgebra.comm_ring ?x_32 ?x_33 ?x_34 ?x_35 ?x_36 ?x_37 [class_instances] (3) ?x_35 : comm_ring ?x_33 := @subalgebra.comm_ring ?x_38 ?x_39 ?x_40 ?x_41 ?x_42 ?x_43 [class_instances] (4) ?x_41 : comm_ring ?x_39 := @subalgebra.comm_ring ?x_44 ?x_45 ?x_46 ?x_47 ?x_48 ?x_49 [class_instances] (5) ?x_47 : comm_ring ?x_45 := @subalgebra.comm_ring ?x_50 ?x_51 ?x_52 ?x_53 ?x_54 ?x_55 [class_instances] (6) ?x_53 : comm_ring ?x_51 := @subalgebra.comm_ring ?x_56 ?x_57 ?x_58 ?x_59 ?x_60 ?x_61 [class_instances] (7) ?x_59 : comm_ring ?x_57 := @subalgebra.comm_ring ?x_62 ?x_63 ?x_64 ?x_65 ?x_66 ?x_67 [class_instances] (8) ?x_65 : comm_ring ?x_63 := @subalgebra.comm_ring ?x_68 ?x_69 ?x_70 ?x_71 ?x_72 ?x_73 [class_instances] (9) ?x_71 : comm_ring ?x_69 := @subalgebra.comm_ring ?x_74 ?x_75 ?x_76 ?x_77 ?x_78 ?x_79 [class_instances] (10) ?x_77 : comm_ring ?x_75 := @subalgebra.comm_ring ?x_80 ?x_81 ?x_82 ?x_83 ?x_84 ?x_85 [class_instances] (11) ?x_83 : comm_ring ?x_81 := @subalgebra.comm_ring ?x_86 ?x_87 ?x_88 ?x_89 ?x_90 ?x_91 [class_instances] (12) ?x_89 : comm_ring ?x_87 := @subalgebra.comm_ring ?x_92 ?x_93 ?x_94 ?x_95 ?x_96 ?x_97 [class_instances] (13) ?x_95 : comm_ring ?x_93 := @subalgebra.comm_ring ?x_98 ?x_99 ?x_100 ?x_101 ?x_102 ?x_103 [class_instances] (14) ?x_101 : comm_ring ?x_99 := @subalgebra.comm_ring ?x_104 ?x_105 ?x_106 ?x_107 ?x_108 ?x_109 [class_instances] (15) ?x_107 : comm_ring ?x_105 := @subalgebra.comm_ring ?x_110 ?x_111 ?x_112 ?x_113 ?x_114 ?x_115 [class_instances] (16) ?x_113 : comm_ring ?x_111 := @subalgebra.comm_ring ?x_116 ?x_117 ?x_118 ?x_119 ?x_120 ?x_121 [class_instances] (17) ?x_119 : comm_ring ?x_117 := @subalgebra.comm_ring ?x_122 ?x_123 ?x_124 ?x_125 ?x_126 ?x_127 [class_instances] (18) ?x_125 : comm_ring ?x_123 := @subalgebra.comm_ring ?x_128 ?x_129 ?x_130 ?x_131 ?x_132 ?x_133 [class_instances] (19) ?x_131 : comm_ring ?x_129 := @subalgebra.comm_ring ?x_134 ?x_135 ?x_136 ?x_137 ?x_138 ?x_139 [class_instances] (20) ?x_1

Floris van Doorn (Oct 11 2019 at 00:10):

The problem here is that comm_ring ?x_14 tries to find a class on a (meta)variable type, which typically means that all instances match.
What is the last instance step in the trace without metavariables yet? That instance is likely the culprit.

Chris Hughes (Oct 11 2019 at 00:11):

I think it's something to do with normed_ring. I think I remember Mario saying that that was theoretically bad even though it hadn't caused problems yet.

Chris Hughes (Oct 11 2019 at 00:14):

I see the problem now I think. My bad, there's an unused argument in algebra.vector_space


Last updated: Dec 20 2023 at 11:08 UTC