Solving ../../benchmarks/true/mem_reverse.smt2... Inference procedure has parameters: Ice fuel: 200 Timeout: 30s Convolution: complete Learning problem is: env: { elt -> {a, b} ; eltlist -> {cons, nil} } definition: { (append, F: {() -> append([nil, l2, l2]) (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)])} (append([_dr, _er, _fr]) /\ append([_dr, _er, _gr])) -> eq_eltlist([_fr, _gr]) ) (reverse, F: {() -> reverse([nil, nil]) (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir])} (reverse([_jr, _kr]) /\ reverse([_jr, _lr])) -> eq_eltlist([_kr, _lr]) ) (mem, P: {() -> mem([h, cons(h, t)]) (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) (mem([e, nil])) -> BOT} ) } properties: {(mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr])} over-approximation: {append, reverse} under-approximation: {} Clause system for inference is: { () -> append([nil, l2, l2]) -> 0 ; () -> mem([h, cons(h, t)]) -> 0 ; () -> reverse([nil, nil]) -> 0 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 0 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 0 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 0 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 0 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 0 ; (mem([e, nil])) -> BOT -> 0 } Solving took 30.000645 seconds. DontKnow. Stopped because: timeout Working model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4072, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4080, q_gen_4081, q_gen_4082, q_gen_4083, q_gen_4086, q_gen_4087, q_gen_4088, q_gen_4089, q_gen_4090, q_gen_4091, q_gen_4092, q_gen_4093, q_gen_4099, q_gen_4100, q_gen_4101, q_gen_4102, q_gen_4103, q_gen_4106, q_gen_4107, q_gen_4108, q_gen_4115, q_gen_4116, q_gen_4117, q_gen_4118, q_gen_4119, q_gen_4122, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4139, q_gen_4140, q_gen_4141, q_gen_4142, q_gen_4150, q_gen_4151, q_gen_4152, q_gen_4153, q_gen_4154, q_gen_4155, q_gen_4156, q_gen_4157, q_gen_4158, q_gen_4167, q_gen_4168, q_gen_4169, q_gen_4170, q_gen_4171, q_gen_4172, q_gen_4173, q_gen_4174, q_gen_4175, q_gen_4188, q_gen_4189, q_gen_4190, q_gen_4191, q_gen_4192, q_gen_4202, q_gen_4203, q_gen_4204, q_gen_4205, q_gen_4206, q_gen_4207, q_gen_4208, q_gen_4209, q_gen_4210, q_gen_4211, q_gen_4212, q_gen_4213, q_gen_4220, q_gen_4221, q_gen_4222, q_gen_4223, q_gen_4224, q_gen_4225, q_gen_4226, q_gen_4227, q_gen_4228, q_gen_4229, q_gen_4230, q_gen_4231, q_gen_4232, q_gen_4233, q_gen_4234, q_gen_4235, q_gen_4236, q_gen_4237, q_gen_4245, q_gen_4246, q_gen_4247, q_gen_4248, q_gen_4249, q_gen_4250, q_gen_4251, q_gen_4252, q_gen_4253, q_gen_4254, q_gen_4255, q_gen_4256, q_gen_4257, q_gen_4263, q_gen_4264, q_gen_4265, q_gen_4266, q_gen_4267, q_gen_4268, q_gen_4269}, Q_f={}, Delta= { () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4102 (q_gen_4102, q_gen_4090) -> q_gen_4118 (q_gen_4091, q_gen_4090) -> q_gen_4209 (q_gen_4102, q_gen_4209) -> q_gen_4229 () -> q_gen_4073 () -> q_gen_4074 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4081 () -> q_gen_4082 () -> q_gen_4083 (q_gen_4083, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4088 (q_gen_4091, q_gen_4090) -> q_gen_4089 (q_gen_4091, q_gen_4090) -> q_gen_4092 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4100 (q_gen_4102, q_gen_4090) -> q_gen_4101 (q_gen_4102, q_gen_4090) -> q_gen_4103 (q_gen_4102, q_gen_4090) -> q_gen_4107 (q_gen_4102, q_gen_4090) -> q_gen_4108 (q_gen_4083, q_gen_4108, q_gen_4107, q_gen_4100) -> q_gen_4116 (q_gen_4091, q_gen_4118) -> q_gen_4117 (q_gen_4091, q_gen_4118) -> q_gen_4119 (q_gen_4091, q_gen_4090) -> q_gen_4141 (q_gen_4102, q_gen_4118) -> q_gen_4157 (q_gen_4102, q_gen_4118) -> q_gen_4158 (q_gen_4102, q_gen_4090) -> q_gen_4175 (q_gen_4091, q_gen_4090) -> q_gen_4205 () -> q_gen_4206 (q_gen_4076, q_gen_4092, q_gen_4089, q_gen_4088) -> q_gen_4221 (q_gen_4102, q_gen_4209) -> q_gen_4222 (q_gen_4102, q_gen_4209) -> q_gen_4223 (q_gen_4206, q_gen_4205, q_gen_4074, q_gen_4141) -> q_gen_4226 () -> q_gen_4248 () -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4072 (q_gen_4083, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4080 (q_gen_4083, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4086 (q_gen_4076, q_gen_4092, q_gen_4089, q_gen_4088) -> q_gen_4087 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4093 (q_gen_4076, q_gen_4103, q_gen_4101, q_gen_4100) -> q_gen_4099 (q_gen_4083, q_gen_4108, q_gen_4107, q_gen_4100) -> q_gen_4106 (q_gen_4076, q_gen_4119, q_gen_4117, q_gen_4116) -> q_gen_4115 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4122 (q_gen_4102, q_gen_4090) -> q_gen_4123 () -> q_gen_4124 (q_gen_4102, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4102, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4102, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 (q_gen_4091, q_gen_4090) -> q_gen_4139 (q_gen_4076, q_gen_4092, q_gen_4074, q_gen_4141) -> q_gen_4140 (q_gen_4076, q_gen_4092, q_gen_4074, q_gen_4141) -> q_gen_4142 (q_gen_4155, q_gen_4154, q_gen_4128, q_gen_4153, q_gen_4152, q_gen_4151, q_gen_4124, q_gen_4139) -> q_gen_4150 (q_gen_4091, q_gen_4090) -> q_gen_4151 () -> q_gen_4152 (q_gen_4091, q_gen_4090) -> q_gen_4153 (q_gen_4091, q_gen_4090) -> q_gen_4154 () -> q_gen_4155 (q_gen_4076, q_gen_4158, q_gen_4074, q_gen_4157) -> q_gen_4156 (q_gen_4173, q_gen_4172, q_gen_4171, q_gen_4170, q_gen_4169, q_gen_4125, q_gen_4168, q_gen_4123) -> q_gen_4167 () -> q_gen_4168 () -> q_gen_4169 (q_gen_4102, q_gen_4090) -> q_gen_4170 () -> q_gen_4171 (q_gen_4102, q_gen_4090) -> q_gen_4172 () -> q_gen_4173 (q_gen_4083, q_gen_4108, q_gen_4081, q_gen_4175) -> q_gen_4174 (q_gen_4192, q_gen_4191, q_gen_4171, q_gen_4190, q_gen_4189, q_gen_4151, q_gen_4168, q_gen_4139) -> q_gen_4188 () -> q_gen_4189 (q_gen_4091, q_gen_4090) -> q_gen_4190 (q_gen_4091, q_gen_4090) -> q_gen_4191 () -> q_gen_4192 (q_gen_4076, q_gen_4092, q_gen_4089, q_gen_4088) -> q_gen_4202 (q_gen_4130, q_gen_4212, q_gen_4211, q_gen_4210, q_gen_4126, q_gen_4208, q_gen_4207, q_gen_4204) -> q_gen_4203 (q_gen_4206, q_gen_4205, q_gen_4074, q_gen_4141) -> q_gen_4204 (q_gen_4091, q_gen_4090) -> q_gen_4207 (q_gen_4102, q_gen_4209) -> q_gen_4208 (q_gen_4206, q_gen_4205, q_gen_4074, q_gen_4141) -> q_gen_4210 (q_gen_4091, q_gen_4090) -> q_gen_4211 (q_gen_4102, q_gen_4209) -> q_gen_4212 (q_gen_4206, q_gen_4082, q_gen_4074, q_gen_4073) -> q_gen_4213 (q_gen_4076, q_gen_4223, q_gen_4222, q_gen_4221) -> q_gen_4220 (q_gen_4130, q_gen_4232, q_gen_4231, q_gen_4230, q_gen_4126, q_gen_4228, q_gen_4227, q_gen_4225) -> q_gen_4224 (q_gen_4076, q_gen_4223, q_gen_4089, q_gen_4226) -> q_gen_4225 (q_gen_4102, q_gen_4209) -> q_gen_4227 (q_gen_4102, q_gen_4229) -> q_gen_4228 (q_gen_4076, q_gen_4223, q_gen_4089, q_gen_4226) -> q_gen_4230 (q_gen_4102, q_gen_4209) -> q_gen_4231 (q_gen_4102, q_gen_4229) -> q_gen_4232 (q_gen_4155, q_gen_4237, q_gen_4128, q_gen_4236, q_gen_4152, q_gen_4235, q_gen_4124, q_gen_4234) -> q_gen_4233 (q_gen_4091, q_gen_4118) -> q_gen_4234 (q_gen_4091, q_gen_4118) -> q_gen_4235 (q_gen_4091, q_gen_4118) -> q_gen_4236 (q_gen_4091, q_gen_4118) -> q_gen_4237 (q_gen_4083, q_gen_4108, q_gen_4107, q_gen_4100) -> q_gen_4245 (q_gen_4192, q_gen_4252, q_gen_4251, q_gen_4250, q_gen_4189, q_gen_4235, q_gen_4249, q_gen_4247) -> q_gen_4246 (q_gen_4248, q_gen_4103, q_gen_4081, q_gen_4175) -> q_gen_4247 (q_gen_4102, q_gen_4090) -> q_gen_4249 (q_gen_4248, q_gen_4103, q_gen_4081, q_gen_4175) -> q_gen_4250 (q_gen_4102, q_gen_4090) -> q_gen_4251 (q_gen_4091, q_gen_4118) -> q_gen_4252 (q_gen_4155, q_gen_4257, q_gen_4128, q_gen_4256, q_gen_4152, q_gen_4255, q_gen_4124, q_gen_4254) -> q_gen_4253 (q_gen_4102, q_gen_4118) -> q_gen_4254 (q_gen_4102, q_gen_4118) -> q_gen_4255 (q_gen_4102, q_gen_4118) -> q_gen_4256 (q_gen_4102, q_gen_4118) -> q_gen_4257 (q_gen_4130, q_gen_4268, q_gen_4128, q_gen_4256, q_gen_4267, q_gen_4266, q_gen_4265, q_gen_4264) -> q_gen_4263 (q_gen_4076, q_gen_4103, q_gen_4074, q_gen_4175) -> q_gen_4264 (q_gen_4102, q_gen_4090) -> q_gen_4265 (q_gen_4076, q_gen_4103, q_gen_4074, q_gen_4175) -> q_gen_4266 (q_gen_4102, q_gen_4090) -> q_gen_4267 (q_gen_4102, q_gen_4118) -> q_gen_4268 (q_gen_4206, q_gen_4108, q_gen_4074, q_gen_4175) -> q_gen_4269 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4069, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4078, q_gen_4079, q_gen_4084, q_gen_4085, q_gen_4098, q_gen_4104, q_gen_4105, q_gen_4113, q_gen_4114, q_gen_4120, q_gen_4121, q_gen_4136, q_gen_4137, q_gen_4138, q_gen_4147, q_gen_4148, q_gen_4149, q_gen_4163, q_gen_4164, q_gen_4165, q_gen_4166, q_gen_4183, q_gen_4184, q_gen_4185, q_gen_4186, q_gen_4187, q_gen_4196, q_gen_4197, q_gen_4198, q_gen_4199, q_gen_4200, q_gen_4201, q_gen_4216, q_gen_4217, q_gen_4218, q_gen_4219, q_gen_4241, q_gen_4242, q_gen_4243, q_gen_4244, q_gen_4271, q_gen_4272}, Q_f={}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4105) -> q_gen_4149 (q_gen_4067, q_gen_4070) -> q_gen_4164 (q_gen_4071, q_gen_4105) -> q_gen_4184 (q_gen_4071, q_gen_4085) -> q_gen_4197 (q_gen_4067, q_gen_4184) -> q_gen_4199 (q_gen_4071, q_gen_4199) -> q_gen_4201 (q_gen_4067, q_gen_4085) -> q_gen_4217 (q_gen_4071, q_gen_4164) -> q_gen_4242 (q_gen_4067, q_gen_4242) -> q_gen_4244 (q_gen_4071, q_gen_4149) -> q_gen_4272 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4069 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4078 (q_gen_4071, q_gen_4066) -> q_gen_4079 (q_gen_4071, q_gen_4085) -> q_gen_4084 (q_gen_4067, q_gen_4070) -> q_gen_4098 (q_gen_4067, q_gen_4105) -> q_gen_4104 (q_gen_4071, q_gen_4105) -> q_gen_4113 (q_gen_4071, q_gen_4070) -> q_gen_4114 (q_gen_4067, q_gen_4066) -> q_gen_4120 (q_gen_4067, q_gen_4070) -> q_gen_4121 () -> q_gen_4136 (q_gen_4067, q_gen_4105) -> q_gen_4137 (q_gen_4067, q_gen_4085) -> q_gen_4138 (q_gen_4071, q_gen_4105) -> q_gen_4147 (q_gen_4071, q_gen_4149) -> q_gen_4148 (q_gen_4067, q_gen_4164) -> q_gen_4163 (q_gen_4067, q_gen_4085) -> q_gen_4165 (q_gen_4067, q_gen_4149) -> q_gen_4166 (q_gen_4067, q_gen_4184) -> q_gen_4183 (q_gen_4071, q_gen_4184) -> q_gen_4185 (q_gen_4071, q_gen_4085) -> q_gen_4186 (q_gen_4067, q_gen_4184) -> q_gen_4187 (q_gen_4067, q_gen_4197) -> q_gen_4196 (q_gen_4071, q_gen_4199) -> q_gen_4198 (q_gen_4067, q_gen_4201) -> q_gen_4200 (q_gen_4067, q_gen_4217) -> q_gen_4216 (q_gen_4067, q_gen_4164) -> q_gen_4218 (q_gen_4071, q_gen_4164) -> q_gen_4219 (q_gen_4067, q_gen_4242) -> q_gen_4241 (q_gen_4071, q_gen_4244) -> q_gen_4243 (q_gen_4071, q_gen_4272) -> q_gen_4271 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4094, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4109, q_gen_4110, q_gen_4111, q_gen_4112, q_gen_4131, q_gen_4132, q_gen_4133, q_gen_4134, q_gen_4135, q_gen_4143, q_gen_4144, q_gen_4145, q_gen_4146, q_gen_4159, q_gen_4160, q_gen_4161, q_gen_4162, q_gen_4176, q_gen_4177, q_gen_4178, q_gen_4179, q_gen_4180, q_gen_4181, q_gen_4182, q_gen_4193, q_gen_4194, q_gen_4195, q_gen_4214, q_gen_4215, q_gen_4238, q_gen_4239, q_gen_4240, q_gen_4258, q_gen_4259, q_gen_4260, q_gen_4261, q_gen_4262, q_gen_4270, q_gen_4273}, Q_f={}, Delta= { () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4145 (q_gen_4134, q_gen_4133) -> q_gen_4161 (q_gen_4145, q_gen_4133) -> q_gen_4181 () -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4094 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4097 (q_gen_4112, q_gen_4111, q_gen_4110, q_gen_4064) -> q_gen_4109 () -> q_gen_4110 () -> q_gen_4111 () -> q_gen_4112 (q_gen_4097, q_gen_4135, q_gen_4132, q_gen_4094) -> q_gen_4131 (q_gen_4134, q_gen_4133) -> q_gen_4132 (q_gen_4134, q_gen_4133) -> q_gen_4135 (q_gen_4097, q_gen_4146, q_gen_4095, q_gen_4144) -> q_gen_4143 (q_gen_4145, q_gen_4133) -> q_gen_4144 (q_gen_4145, q_gen_4133) -> q_gen_4146 (q_gen_4097, q_gen_4162, q_gen_4095, q_gen_4160) -> q_gen_4159 (q_gen_4134, q_gen_4161) -> q_gen_4160 (q_gen_4134, q_gen_4161) -> q_gen_4162 (q_gen_4112, q_gen_4178, q_gen_4110, q_gen_4177) -> q_gen_4176 (q_gen_4134, q_gen_4133) -> q_gen_4177 (q_gen_4134, q_gen_4133) -> q_gen_4178 (q_gen_4097, q_gen_4182, q_gen_4095, q_gen_4180) -> q_gen_4179 (q_gen_4145, q_gen_4181) -> q_gen_4180 (q_gen_4145, q_gen_4181) -> q_gen_4182 (q_gen_4194, q_gen_4135, q_gen_4110, q_gen_4177) -> q_gen_4193 () -> q_gen_4194 (q_gen_4194, q_gen_4096, q_gen_4110, q_gen_4064) -> q_gen_4195 (q_gen_4215, q_gen_4111, q_gen_4095, q_gen_4064) -> q_gen_4214 () -> q_gen_4215 (q_gen_4215, q_gen_4239, q_gen_4132, q_gen_4193) -> q_gen_4238 (q_gen_4145, q_gen_4161) -> q_gen_4239 (q_gen_4194, q_gen_4146, q_gen_4110, q_gen_4144) -> q_gen_4240 (q_gen_4215, q_gen_4260, q_gen_4132, q_gen_4259) -> q_gen_4258 (q_gen_4097, q_gen_4135, q_gen_4095, q_gen_4177) -> q_gen_4259 (q_gen_4134, q_gen_4161) -> q_gen_4260 (q_gen_4215, q_gen_4178, q_gen_4262, q_gen_4214) -> q_gen_4261 (q_gen_4145, q_gen_4133) -> q_gen_4262 (q_gen_4215, q_gen_4178, q_gen_4095, q_gen_4177) -> q_gen_4270 (q_gen_4215, q_gen_4260, q_gen_4095, q_gen_4160) -> q_gen_4273 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| ------------------- STEPS: ------------------------------------------- Step 0, which took 0.012329 s (model generation: 0.010678, model checking: 0.001651): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 0 ; () -> mem([h, cons(h, t)]) -> 0 ; () -> reverse([nil, nil]) -> 3 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 1 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 1 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 1 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 1 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 1 ; (mem([e, nil])) -> BOT -> 1 } Sat witness: Yes: (() -> reverse([nil, nil]), { }) ------------------------------------------- Step 1, which took 0.010685 s (model generation: 0.010505, model checking: 0.000180): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 0 ; () -> mem([h, cons(h, t)]) -> 3 ; () -> reverse([nil, nil]) -> 3 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 1 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 1 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 1 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 1 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 1 ; (mem([e, nil])) -> BOT -> 1 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> b ; t -> nil }) ------------------------------------------- Step 2, which took 0.012073 s (model generation: 0.010864, model checking: 0.001209): Model: |_ { append -> {{{ Q={}, Q_f={}, Delta= { } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4065 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 ; () -> mem([h, cons(h, t)]) -> 3 ; () -> reverse([nil, nil]) -> 3 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 1 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 1 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 1 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 1 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 1 ; (mem([e, nil])) -> BOT -> 1 } Sat witness: Yes: (() -> append([nil, l2, l2]), { l2 -> nil }) ------------------------------------------- Step 3, which took 0.011768 s (model generation: 0.010997, model checking: 0.000771): Model: |_ { append -> {{{ Q={q_gen_4068}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4065 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 ; () -> mem([h, cons(h, t)]) -> 3 ; () -> reverse([nil, nil]) -> 3 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 1 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 1 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 1 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 4 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 2 ; (mem([e, nil])) -> BOT -> 2 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> b ; h -> a ; t -> cons(b, nil) }) ------------------------------------------- Step 4, which took 0.012759 s (model generation: 0.011274, model checking: 0.001485): Model: |_ { append -> {{{ Q={q_gen_4068}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067}, Q_f={q_gen_4065}, Delta= { (q_gen_4067, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4065 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 ; () -> mem([h, cons(h, t)]) -> 3 ; () -> reverse([nil, nil]) -> 3 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 1 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 4 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 2 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 4 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 2 ; (mem([e, nil])) -> BOT -> 2 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> nil ; h1 -> b ; l2 -> nil ; t1 -> nil }) ------------------------------------------- Step 5, which took 0.012175 s (model generation: 0.011754, model checking: 0.000421): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4073 () -> q_gen_4074 () -> q_gen_4075 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067}, Q_f={q_gen_4065}, Delta= { (q_gen_4067, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4065 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 ; () -> mem([h, cons(h, t)]) -> 3 ; () -> reverse([nil, nil]) -> 3 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 2 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 4 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 2 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 4 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 5 ; (mem([e, nil])) -> BOT -> 3 } Sat witness: Yes: ((mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]), { e -> b ; h -> a ; t -> nil }) ------------------------------------------- Step 6, which took 0.012847 s (model generation: 0.012219, model checking: 0.000628): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4073 () -> q_gen_4074 () -> q_gen_4075 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067}, Q_f={q_gen_4065}, Delta= { (q_gen_4067, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4065 () -> q_gen_4065 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 ; () -> mem([h, cons(h, t)]) -> 3 ; () -> reverse([nil, nil]) -> 3 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 3 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 4 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 3 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 4 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 5 ; (mem([e, nil])) -> BOT -> 6 } Sat witness: Yes: ((mem([e, nil])) -> BOT, { e -> b }) ------------------------------------------- Step 7, which took 0.013366 s (model generation: 0.012204, model checking: 0.001162): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4073 () -> q_gen_4074 () -> q_gen_4075 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 3 ; () -> mem([h, cons(h, t)]) -> 6 ; () -> reverse([nil, nil]) -> 4 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 4 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 4 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 4 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 4 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 5 ; (mem([e, nil])) -> BOT -> 6 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> a ; t -> nil }) ------------------------------------------- Step 8, which took 0.015564 s (model generation: 0.012291, model checking: 0.003273): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4073 () -> q_gen_4074 () -> q_gen_4075 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 6 ; () -> mem([h, cons(h, t)]) -> 6 ; () -> reverse([nil, nil]) -> 4 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 4 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 4 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 4 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 4 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 5 ; (mem([e, nil])) -> BOT -> 6 } Sat witness: Yes: (() -> append([nil, l2, l2]), { l2 -> cons(a, nil) }) ------------------------------------------- Step 9, which took 0.013879 s (model generation: 0.012746, model checking: 0.001133): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4073 () -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 6 ; () -> mem([h, cons(h, t)]) -> 6 ; () -> reverse([nil, nil]) -> 4 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 4 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 4 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 4 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 7 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 5 ; (mem([e, nil])) -> BOT -> 6 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> b ; h -> a ; t -> cons(a, cons(b, nil)) }) ------------------------------------------- Step 10, which took 0.015413 s (model generation: 0.010796, model checking: 0.004617): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4073 () -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 6 ; () -> mem([h, cons(h, t)]) -> 6 ; () -> reverse([nil, nil]) -> 4 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 4 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 7 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 5 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 7 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 5 ; (mem([e, nil])) -> BOT -> 6 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(a, nil) ; h1 -> b ; l2 -> nil ; t1 -> cons(a, nil) }) ------------------------------------------- Step 11, which took 0.013855 s (model generation: 0.013200, model checking: 0.000655): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4064 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 6 ; () -> mem([h, cons(h, t)]) -> 6 ; () -> reverse([nil, nil]) -> 4 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 7 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 7 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 5 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 7 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 5 ; (mem([e, nil])) -> BOT -> 6 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> nil ; _ir -> cons(b, nil) ; h1 -> b ; t1 -> nil }) ------------------------------------------- Step 12, which took 0.019661 s (model generation: 0.015978, model checking: 0.003683): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 6 ; () -> mem([h, cons(h, t)]) -> 9 ; () -> reverse([nil, nil]) -> 5 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 7 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 7 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 6 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 7 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 6 ; (mem([e, nil])) -> BOT -> 7 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> b ; t -> cons(b, nil) }) ------------------------------------------- Step 13, which took 0.039073 s (model generation: 0.016669, model checking: 0.022404): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 9 ; () -> mem([h, cons(h, t)]) -> 9 ; () -> reverse([nil, nil]) -> 6 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 7 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 7 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 7 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 7 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 7 ; (mem([e, nil])) -> BOT -> 7 } Sat witness: Yes: (() -> append([nil, l2, l2]), { l2 -> cons(b, cons(b, nil)) }) ------------------------------------------- Step 14, which took 0.007728 s (model generation: 0.006193, model checking: 0.001535): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 9 ; () -> mem([h, cons(h, t)]) -> 9 ; () -> reverse([nil, nil]) -> 7 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 7 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 7 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 7 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 10 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 8 ; (mem([e, nil])) -> BOT -> 8 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> a ; h -> b ; t -> cons(a, nil) }) ------------------------------------------- Step 15, which took 0.018935 s (model generation: 0.009244, model checking: 0.009691): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 9 ; () -> mem([h, cons(h, t)]) -> 9 ; () -> reverse([nil, nil]) -> 7 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 7 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 10 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 8 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 10 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 8 ; (mem([e, nil])) -> BOT -> 8 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(b, nil) ; h1 -> a ; l2 -> nil ; t1 -> cons(b, nil) }) ------------------------------------------- Step 16, which took 0.008280 s (model generation: 0.007538, model checking: 0.000742): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 9 ; () -> mem([h, cons(h, t)]) -> 9 ; () -> reverse([nil, nil]) -> 7 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 10 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 10 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 8 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 10 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 8 ; (mem([e, nil])) -> BOT -> 8 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> nil ; _ir -> cons(a, nil) ; h1 -> a ; t1 -> nil }) ------------------------------------------- Step 17, which took 0.013763 s (model generation: 0.012876, model checking: 0.000887): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 9 ; () -> mem([h, cons(h, t)]) -> 9 ; () -> reverse([nil, nil]) -> 8 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 10 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 10 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 8 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 10 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 11 ; (mem([e, nil])) -> BOT -> 9 } Sat witness: Yes: ((mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]), { e -> b ; h -> a ; t -> cons(a, nil) }) ------------------------------------------- Step 18, which took 0.017152 s (model generation: 0.015198, model checking: 0.001954): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { (q_gen_4071, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 9 ; () -> mem([h, cons(h, t)]) -> 12 ; () -> reverse([nil, nil]) -> 9 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 10 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 10 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 9 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 10 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 11 ; (mem([e, nil])) -> BOT -> 10 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> a ; t -> cons(b, nil) }) ------------------------------------------- Step 19, which took 0.030277 s (model generation: 0.010962, model checking: 0.019315): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { (q_gen_4071, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 12 ; () -> mem([h, cons(h, t)]) -> 12 ; () -> reverse([nil, nil]) -> 10 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 10 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 10 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 10 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 10 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 11 ; (mem([e, nil])) -> BOT -> 10 } Sat witness: Yes: (() -> append([nil, l2, l2]), { l2 -> cons(b, cons(a, cons(b, nil))) }) ------------------------------------------- Step 20, which took 0.010988 s (model generation: 0.009739, model checking: 0.001249): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { (q_gen_4071, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 12 ; () -> mem([h, cons(h, t)]) -> 12 ; () -> reverse([nil, nil]) -> 10 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 10 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 10 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 10 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 13 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 11 ; (mem([e, nil])) -> BOT -> 11 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> a ; h -> b ; t -> cons(b, nil) }) ------------------------------------------- Step 21, which took 0.022926 s (model generation: 0.013940, model checking: 0.008986): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { (q_gen_4071, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 12 ; () -> mem([h, cons(h, t)]) -> 12 ; () -> reverse([nil, nil]) -> 10 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 10 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 13 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 11 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 13 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 11 ; (mem([e, nil])) -> BOT -> 11 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(b, nil) ; h1 -> b ; l2 -> cons(b, nil) ; t1 -> nil }) ------------------------------------------- Step 22, which took 0.024275 s (model generation: 0.021523, model checking: 0.002752): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { (q_gen_4071, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097}, Q_f={q_gen_4064}, Delta= { (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 12 ; () -> mem([h, cons(h, t)]) -> 12 ; () -> reverse([nil, nil]) -> 10 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 13 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 13 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 11 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 13 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 11 ; (mem([e, nil])) -> BOT -> 11 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> cons(b, nil) ; _ir -> cons(b, cons(b, nil)) ; h1 -> b ; t1 -> cons(b, nil) }) ------------------------------------------- Step 23, which took 0.024492 s (model generation: 0.023967, model checking: 0.000525): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { (q_gen_4071, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 12 ; () -> mem([h, cons(h, t)]) -> 12 ; () -> reverse([nil, nil]) -> 11 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 13 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 13 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 11 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 13 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 14 ; (mem([e, nil])) -> BOT -> 12 } Sat witness: Yes: ((mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]), { e -> a ; h -> b ; t -> nil }) ------------------------------------------- Step 24, which took 0.022075 s (model generation: 0.020582, model checking: 0.001493): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077}, Q_f={q_gen_4065}, Delta= { (q_gen_4071, q_gen_4066) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 () -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 12 ; () -> mem([h, cons(h, t)]) -> 12 ; () -> reverse([nil, nil]) -> 12 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 13 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 13 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 12 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 13 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 14 ; (mem([e, nil])) -> BOT -> 15 } Sat witness: Yes: ((mem([e, nil])) -> BOT, { e -> a }) ------------------------------------------- Step 25, which took 0.017382 s (model generation: 0.013743, model checking: 0.003639): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 12 ; () -> mem([h, cons(h, t)]) -> 15 ; () -> reverse([nil, nil]) -> 13 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 13 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 13 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 13 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 13 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 14 ; (mem([e, nil])) -> BOT -> 15 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> b ; t -> cons(a, nil) }) ------------------------------------------- Step 26, which took 0.024475 s (model generation: 0.021285, model checking: 0.003190): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 13 ; () -> mem([h, cons(h, t)]) -> 15 ; () -> reverse([nil, nil]) -> 13 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 13 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 13 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 13 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 16 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 14 ; (mem([e, nil])) -> BOT -> 15 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> a ; h -> b ; t -> cons(a, cons(b, nil)) }) ------------------------------------------- Step 27, which took 0.055300 s (model generation: 0.023721, model checking: 0.031579): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 13 ; () -> mem([h, cons(h, t)]) -> 15 ; () -> reverse([nil, nil]) -> 13 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 13 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 16 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 14 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 16 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 14 ; (mem([e, nil])) -> BOT -> 15 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(a, nil) ; h1 -> b ; l2 -> nil ; t1 -> nil }) ------------------------------------------- Step 28, which took 0.013682 s (model generation: 0.011843, model checking: 0.001839): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 13 ; () -> mem([h, cons(h, t)]) -> 15 ; () -> reverse([nil, nil]) -> 13 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 16 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 16 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 14 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 16 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 14 ; (mem([e, nil])) -> BOT -> 15 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> nil ; _ir -> cons(b, cons(a, nil)) ; h1 -> b ; t1 -> nil }) ------------------------------------------- Step 29, which took 0.020964 s (model generation: 0.016799, model checking: 0.004165): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4071, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 14 ; () -> mem([h, cons(h, t)]) -> 15 ; () -> reverse([nil, nil]) -> 14 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 16 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 16 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 14 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 16 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 17 ; (mem([e, nil])) -> BOT -> 15 } Sat witness: Yes: ((mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]), { e -> a ; h -> b ; t -> cons(b, nil) }) ------------------------------------------- Step 30, which took 0.033465 s (model generation: 0.022851, model checking: 0.010614): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 15 ; () -> mem([h, cons(h, t)]) -> 18 ; () -> reverse([nil, nil]) -> 15 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 16 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 16 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 15 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 16 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 17 ; (mem([e, nil])) -> BOT -> 16 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> a ; t -> cons(a, nil) }) ------------------------------------------- Step 31, which took 0.030327 s (model generation: 0.020208, model checking: 0.010119): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 16 ; () -> mem([h, cons(h, t)]) -> 18 ; () -> reverse([nil, nil]) -> 16 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 16 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 16 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 16 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 19 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 17 ; (mem([e, nil])) -> BOT -> 17 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> b ; h -> a ; t -> cons(b, cons(a, nil)) }) ------------------------------------------- Step 32, which took 0.083414 s (model generation: 0.018065, model checking: 0.065349): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4105) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 16 ; () -> mem([h, cons(h, t)]) -> 18 ; () -> reverse([nil, nil]) -> 16 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 16 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 19 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 17 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 19 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 17 ; (mem([e, nil])) -> BOT -> 17 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(a, nil) ; h1 -> b ; l2 -> cons(a, nil) ; t1 -> nil }) ------------------------------------------- Step 33, which took 0.016293 s (model generation: 0.014570, model checking: 0.001723): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4105) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 16 ; () -> mem([h, cons(h, t)]) -> 18 ; () -> reverse([nil, nil]) -> 16 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 19 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 19 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 17 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 19 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 17 ; (mem([e, nil])) -> BOT -> 17 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> nil ; _ir -> cons(b, cons(b, cons(b, nil))) ; h1 -> b ; t1 -> nil }) ------------------------------------------- Step 34, which took 0.022513 s (model generation: 0.016443, model checking: 0.006070): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4105) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 17 ; () -> mem([h, cons(h, t)]) -> 18 ; () -> reverse([nil, nil]) -> 17 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 19 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 19 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 20 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 19 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 18 ; (mem([e, nil])) -> BOT -> 18 } Sat witness: Yes: ((mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]), { _mr -> cons(b, cons(b, cons(b, nil))) ; e -> b ; l1 -> cons(b, nil) }) ------------------------------------------- Step 35, which took 0.027965 s (model generation: 0.023071, model checking: 0.004894): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 (q_gen_4067, q_gen_4105) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 18 ; () -> mem([h, cons(h, t)]) -> 21 ; () -> reverse([nil, nil]) -> 18 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 19 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 19 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 20 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 19 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 19 ; (mem([e, nil])) -> BOT -> 19 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> b ; t -> cons(a, cons(b, nil)) }) ------------------------------------------- Step 36, which took 0.030649 s (model generation: 0.025260, model checking: 0.005389): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 (q_gen_4067, q_gen_4105) -> q_gen_4070 () -> q_gen_4071 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 19 ; () -> mem([h, cons(h, t)]) -> 21 ; () -> reverse([nil, nil]) -> 19 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 19 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 19 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 20 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 22 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 20 ; (mem([e, nil])) -> BOT -> 20 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> a ; h -> b ; t -> cons(b, cons(a, nil)) }) ------------------------------------------- Step 37, which took 0.241866 s (model generation: 0.020471, model checking: 0.221395): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 19 ; () -> mem([h, cons(h, t)]) -> 21 ; () -> reverse([nil, nil]) -> 19 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 19 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 22 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 20 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 22 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 20 ; (mem([e, nil])) -> BOT -> 20 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(b, nil) ; h1 -> a ; l2 -> cons(b, nil) ; t1 -> nil }) ------------------------------------------- Step 38, which took 0.021667 s (model generation: 0.019632, model checking: 0.002035): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 19 ; () -> mem([h, cons(h, t)]) -> 21 ; () -> reverse([nil, nil]) -> 19 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 22 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 22 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 20 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 22 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 20 ; (mem([e, nil])) -> BOT -> 20 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> nil ; _ir -> cons(a, cons(b, nil)) ; h1 -> a ; t1 -> nil }) ------------------------------------------- Step 39, which took 0.033059 s (model generation: 0.026903, model checking: 0.006156): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 20 ; () -> mem([h, cons(h, t)]) -> 21 ; () -> reverse([nil, nil]) -> 20 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 22 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 22 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 23 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 22 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 21 ; (mem([e, nil])) -> BOT -> 21 } Sat witness: Yes: ((mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]), { _mr -> cons(b, cons(a, cons(a, nil))) ; e -> b ; l1 -> cons(b, nil) }) ------------------------------------------- Step 40, which took 0.034406 s (model generation: 0.030851, model checking: 0.003555): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 (q_gen_4071, q_gen_4105) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 21 ; () -> mem([h, cons(h, t)]) -> 21 ; () -> reverse([nil, nil]) -> 21 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 22 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 22 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 23 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 22 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 24 ; (mem([e, nil])) -> BOT -> 22 } Sat witness: Yes: ((mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]), { e -> b ; h -> a ; t -> cons(a, cons(a, nil)) }) ------------------------------------------- Step 41, which took 0.024916 s (model generation: 0.024424, model checking: 0.000492): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { (q_gen_4071, q_gen_4105) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 21 ; () -> mem([h, cons(h, t)]) -> 24 ; () -> reverse([nil, nil]) -> 22 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 22 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 22 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 23 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 22 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 24 ; (mem([e, nil])) -> BOT -> 22 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> a ; t -> cons(a, cons(b, nil)) }) ------------------------------------------- Step 42, which took 0.029915 s (model generation: 0.026737, model checking: 0.003178): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { (q_gen_4071, q_gen_4105) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 22 ; () -> mem([h, cons(h, t)]) -> 24 ; () -> reverse([nil, nil]) -> 22 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 22 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 22 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 23 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 25 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 24 ; (mem([e, nil])) -> BOT -> 23 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> a ; h -> b ; t -> cons(a, cons(a, nil)) }) ------------------------------------------- Step 43, which took 0.074028 s (model generation: 0.023918, model checking: 0.050110): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 22 ; () -> mem([h, cons(h, t)]) -> 24 ; () -> reverse([nil, nil]) -> 22 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 22 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 25 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 23 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 25 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 24 ; (mem([e, nil])) -> BOT -> 23 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(a, nil) ; h1 -> a ; l2 -> cons(a, nil) ; t1 -> nil }) ------------------------------------------- Step 44, which took 0.029383 s (model generation: 0.028090, model checking: 0.001293): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 22 ; () -> mem([h, cons(h, t)]) -> 24 ; () -> reverse([nil, nil]) -> 22 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 25 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 25 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 23 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 25 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 24 ; (mem([e, nil])) -> BOT -> 23 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> cons(a, nil) ; _ir -> cons(a, cons(b, nil)) ; h1 -> b ; t1 -> nil }) ------------------------------------------- Step 45, which took 0.032702 s (model generation: 0.029547, model checking: 0.003155): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4097 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 23 ; () -> mem([h, cons(h, t)]) -> 24 ; () -> reverse([nil, nil]) -> 23 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 25 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 25 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 26 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 25 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 24 ; (mem([e, nil])) -> BOT -> 24 } Sat witness: Yes: ((mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]), { _mr -> cons(a, nil) ; e -> b ; l1 -> cons(b, nil) }) ------------------------------------------- Step 46, which took 0.035017 s (model generation: 0.030083, model checking: 0.004934): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 24 ; () -> mem([h, cons(h, t)]) -> 27 ; () -> reverse([nil, nil]) -> 24 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 25 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 25 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 26 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 25 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 25 ; (mem([e, nil])) -> BOT -> 25 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> b ; t -> cons(a, cons(a, cons(b, nil))) }) ------------------------------------------- Step 47, which took 0.056650 s (model generation: 0.029897, model checking: 0.026753): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 (q_gen_4071, q_gen_4085) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 25 ; () -> mem([h, cons(h, t)]) -> 27 ; () -> reverse([nil, nil]) -> 25 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 25 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 25 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 26 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 28 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 26 ; (mem([e, nil])) -> BOT -> 26 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> a ; h -> b ; t -> cons(a, cons(b, cons(a, cons(a, nil)))) }) ------------------------------------------- Step 48, which took 1.082604 s (model generation: 0.050179, model checking: 1.032425): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4067, q_gen_4070) -> q_gen_4105 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 25 ; () -> mem([h, cons(h, t)]) -> 27 ; () -> reverse([nil, nil]) -> 25 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 25 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 28 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 26 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 28 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 26 ; (mem([e, nil])) -> BOT -> 26 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(b, cons(a, nil)) ; h1 -> b ; l2 -> cons(b, cons(a, nil)) ; t1 -> nil }) ------------------------------------------- Step 49, which took 0.068562 s (model generation: 0.064219, model checking: 0.004343): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 25 ; () -> mem([h, cons(h, t)]) -> 27 ; () -> reverse([nil, nil]) -> 25 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 28 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 28 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 26 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 28 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 26 ; (mem([e, nil])) -> BOT -> 26 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> nil ; _ir -> cons(b, nil) ; h1 -> a ; t1 -> nil }) ------------------------------------------- Step 50, which took 0.103893 s (model generation: 0.096593, model checking: 0.007300): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { (q_gen_4067, q_gen_4070) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 26 ; () -> mem([h, cons(h, t)]) -> 27 ; () -> reverse([nil, nil]) -> 26 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 28 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 28 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 29 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 28 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 27 ; (mem([e, nil])) -> BOT -> 27 } Sat witness: Yes: ((mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]), { _mr -> cons(b, nil) ; e -> a ; l1 -> cons(a, nil) }) ------------------------------------------- Step 51, which took 0.213078 s (model generation: 0.209588, model checking: 0.003490): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4081, q_gen_4086, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4076, q_gen_4075, q_gen_4081, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4091, q_gen_4090) -> q_gen_4081 () -> q_gen_4081 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4086) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4081, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4081, q_gen_4073) -> q_gen_4086 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4086 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4067, q_gen_4070) -> q_gen_4105 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4094, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4112, q_gen_4133, q_gen_4134}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4112, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4112, q_gen_4096, q_gen_4095, q_gen_4094) -> q_gen_4064 () -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4094 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4094) -> q_gen_4094 (q_gen_4134, q_gen_4133) -> q_gen_4094 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4112 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 29 ; () -> mem([h, cons(h, t)]) -> 27 ; () -> reverse([nil, nil]) -> 27 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 28 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 28 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 29 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 28 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 27 ; (mem([e, nil])) -> BOT -> 27 } Sat witness: Yes: (() -> append([nil, l2, l2]), { l2 -> cons(b, nil) }) ------------------------------------------- Step 52, which took 0.131172 s (model generation: 0.127407, model checking: 0.003765): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { (q_gen_4067, q_gen_4070) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 29 ; () -> mem([h, cons(h, t)]) -> 30 ; () -> reverse([nil, nil]) -> 28 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 28 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 28 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 29 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 28 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 28 ; (mem([e, nil])) -> BOT -> 28 } Sat witness: Yes: (() -> mem([h, cons(h, t)]), { h -> b ; t -> cons(b, cons(a, cons(b, nil))) }) ------------------------------------------- Step 53, which took 0.193257 s (model generation: 0.192531, model checking: 0.000726): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4070) -> q_gen_4085 (q_gen_4067, q_gen_4085) -> q_gen_4085 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 29 ; () -> mem([h, cons(h, t)]) -> 30 ; () -> reverse([nil, nil]) -> 28 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 28 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 28 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 29 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 28 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 31 ; (mem([e, nil])) -> BOT -> 29 } Sat witness: Yes: ((mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]), { e -> a ; h -> b ; t -> cons(b, cons(b, nil)) }) ------------------------------------------- Step 54, which took 0.328873 s (model generation: 0.327312, model checking: 0.001561): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4204, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4204) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4204 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { (q_gen_4067, q_gen_4070) -> q_gen_4066 (q_gen_4067, q_gen_4085) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 29 ; () -> mem([h, cons(h, t)]) -> 30 ; () -> reverse([nil, nil]) -> 28 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 28 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 28 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 29 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 31 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 31 ; (mem([e, nil])) -> BOT -> 29 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> b ; h -> a ; t -> cons(b, cons(b, nil)) }) ------------------------------------------- Step 55, which took 1.089881 s (model generation: 0.157390, model checking: 0.932491): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4067, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 29 ; () -> mem([h, cons(h, t)]) -> 30 ; () -> reverse([nil, nil]) -> 28 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 28 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 31 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 29 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 31 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 31 ; (mem([e, nil])) -> BOT -> 29 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(b, cons(b, cons(a, nil))) ; h1 -> b ; l2 -> cons(b, cons(b, cons(a, nil))) ; t1 -> nil }) ------------------------------------------- Step 56, which took 0.417924 s (model generation: 0.416112, model checking: 0.001812): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 (q_gen_4067, q_gen_4085) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 29 ; () -> mem([h, cons(h, t)]) -> 30 ; () -> reverse([nil, nil]) -> 28 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 31 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 31 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 29 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 31 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 31 ; (mem([e, nil])) -> BOT -> 29 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> cons(b, nil) ; _ir -> cons(b, cons(a, cons(b, nil))) ; h1 -> a ; t1 -> cons(b, nil) }) ------------------------------------------- Step 57, which took 0.376145 s (model generation: 0.375244, model checking: 0.000901): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4067, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194, q_gen_4195}, Q_f={q_gen_4064, q_gen_4144}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 () -> q_gen_4194 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4195 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 29 ; () -> mem([h, cons(h, t)]) -> 30 ; () -> reverse([nil, nil]) -> 29 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 31 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 31 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 32 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 31 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 31 ; (mem([e, nil])) -> BOT -> 30 } Sat witness: Yes: ((mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]), { _mr -> cons(a, cons(a, nil)) ; e -> b ; l1 -> cons(b, nil) }) ------------------------------------------- Step 58, which took 0.822191 s (model generation: 0.814176, model checking: 0.008015): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { (q_gen_4067, q_gen_4085) -> q_gen_4066 () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4111, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4111 (q_gen_4134, q_gen_4133) -> q_gen_4111 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4194, q_gen_4111, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4194, q_gen_4111, q_gen_4095, q_gen_4144) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 30 ; () -> mem([h, cons(h, t)]) -> 31 ; () -> reverse([nil, nil]) -> 30 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 31 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 31 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 32 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 34 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 32 ; (mem([e, nil])) -> BOT -> 31 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> b ; h -> a ; t -> cons(b, cons(a, cons(b, cons(b, nil)))) }) ------------------------------------------- Step 59, which took 1.617132 s (model generation: 0.477617, model checking: 1.139515): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4085) -> q_gen_4085 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4110, q_gen_4111, q_gen_4133, q_gen_4134, q_gen_4144}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4110, q_gen_4144) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4110, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4134, q_gen_4133) -> q_gen_4110 () -> q_gen_4110 () -> q_gen_4111 (q_gen_4134, q_gen_4133) -> q_gen_4111 (q_gen_4097, q_gen_4096, q_gen_4110, q_gen_4064) -> q_gen_4144 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4097, q_gen_4111, q_gen_4110, q_gen_4144) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 31 ; () -> mem([h, cons(h, t)]) -> 31 ; () -> reverse([nil, nil]) -> 31 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 31 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 34 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 32 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 34 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 32 ; (mem([e, nil])) -> BOT -> 32 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(a, cons(b, nil)) ; h1 -> a ; l2 -> cons(a, cons(b, nil)) ; t1 -> nil }) ------------------------------------------- Step 60, which took 0.237608 s (model generation: 0.233836, model checking: 0.003772): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4204, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4204) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4204 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 (q_gen_4067, q_gen_4085) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4111, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4111 (q_gen_4134, q_gen_4133) -> q_gen_4111 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4194, q_gen_4111, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4194, q_gen_4111, q_gen_4095, q_gen_4144) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 31 ; () -> mem([h, cons(h, t)]) -> 31 ; () -> reverse([nil, nil]) -> 31 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 34 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 34 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 32 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 34 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 32 ; (mem([e, nil])) -> BOT -> 32 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> cons(b, nil) ; _ir -> cons(b, cons(b, cons(b, nil))) ; h1 -> a ; t1 -> cons(b, nil) }) ------------------------------------------- Step 61, which took 0.482934 s (model generation: 0.460176, model checking: 0.022758): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4085) -> q_gen_4085 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4132, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4132, q_gen_4064) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4132, q_gen_4064) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4132, q_gen_4144) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4134, q_gen_4133) -> q_gen_4132 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 32 ; () -> mem([h, cons(h, t)]) -> 32 ; () -> reverse([nil, nil]) -> 32 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 34 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 34 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 35 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 34 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 33 ; (mem([e, nil])) -> BOT -> 33 } Sat witness: Yes: ((mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]), { _mr -> cons(b, cons(b, nil)) ; e -> a ; l1 -> cons(a, cons(a, nil)) }) ------------------------------------------- Step 62, which took 4.033596 s (model generation: 2.975505, model checking: 1.058091): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4085) -> q_gen_4085 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4110, q_gen_4111, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4161}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4134, q_gen_4133) -> q_gen_4161 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4110, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4110, q_gen_4144) -> q_gen_4064 (q_gen_4134, q_gen_4161) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4161) -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 (q_gen_4134, q_gen_4161) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4110 (q_gen_4134, q_gen_4133) -> q_gen_4111 () -> q_gen_4111 (q_gen_4097, q_gen_4096, q_gen_4110, q_gen_4064) -> q_gen_4144 (q_gen_4097, q_gen_4096, q_gen_4110, q_gen_4144) -> q_gen_4144 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4144) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 33 ; () -> mem([h, cons(h, t)]) -> 33 ; () -> reverse([nil, nil]) -> 33 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 34 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 37 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 35 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 35 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 34 ; (mem([e, nil])) -> BOT -> 34 } Sat witness: Yes: ((append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]), { _cr -> cons(b, cons(b, nil)) ; h1 -> b ; l2 -> cons(b, nil) ; t1 -> cons(b, nil) }) ------------------------------------------- Step 63, which took 0.431655 s (model generation: 0.425948, model checking: 0.005707): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4081, q_gen_4082, q_gen_4090, q_gen_4091, q_gen_4118, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4142}, Q_f={q_gen_4068}, Delta= { () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4091, q_gen_4090) -> q_gen_4118 (q_gen_4091, q_gen_4118) -> q_gen_4118 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4076, q_gen_4075, q_gen_4081, q_gen_4073) -> q_gen_4073 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 (q_gen_4091, q_gen_4118) -> q_gen_4073 () -> q_gen_4073 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4091, q_gen_4090) -> q_gen_4081 (q_gen_4091, q_gen_4090) -> q_gen_4081 (q_gen_4091, q_gen_4118) -> q_gen_4081 () -> q_gen_4081 () -> q_gen_4082 (q_gen_4091, q_gen_4090) -> q_gen_4082 (q_gen_4091, q_gen_4118) -> q_gen_4082 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4081, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4082, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4118) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4076, q_gen_4082, q_gen_4074, q_gen_4073) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4118) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4118) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4118) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 (q_gen_4091, q_gen_4118) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4118) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4118) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4118) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4142) -> q_gen_4142 (q_gen_4076, q_gen_4075, q_gen_4081, q_gen_4073) -> q_gen_4142 (q_gen_4076, q_gen_4082, q_gen_4074, q_gen_4073) -> q_gen_4142 (q_gen_4091, q_gen_4118) -> q_gen_4142 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4085) -> q_gen_4085 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4143, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4143) -> q_gen_4143 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4143 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4143) -> q_gen_4143 (q_gen_4134, q_gen_4133) -> q_gen_4143 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 36 ; () -> mem([h, cons(h, t)]) -> 34 ; () -> reverse([nil, nil]) -> 34 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 34 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 37 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 35 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 35 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 34 ; (mem([e, nil])) -> BOT -> 34 } Sat witness: Yes: (() -> append([nil, l2, l2]), { l2 -> cons(a, cons(b, nil)) }) ------------------------------------------- Step 64, which took 0.764849 s (model generation: 0.761928, model checking: 0.002921): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4081, q_gen_4082, q_gen_4090, q_gen_4091, q_gen_4118, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4142}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4118) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4091, q_gen_4090) -> q_gen_4118 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 (q_gen_4091, q_gen_4118) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4076 (q_gen_4091, q_gen_4090) -> q_gen_4081 (q_gen_4091, q_gen_4118) -> q_gen_4081 () -> q_gen_4081 () -> q_gen_4082 (q_gen_4091, q_gen_4090) -> q_gen_4082 (q_gen_4091, q_gen_4118) -> q_gen_4082 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4082, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4068 () -> q_gen_4068 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4118) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4076, q_gen_4082, q_gen_4074, q_gen_4073) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4118) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4118) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4076, q_gen_4082, q_gen_4081, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4118) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 (q_gen_4091, q_gen_4118) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4118) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4118) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4118) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4142) -> q_gen_4142 (q_gen_4076, q_gen_4075, q_gen_4081, q_gen_4073) -> q_gen_4142 (q_gen_4076, q_gen_4082, q_gen_4074, q_gen_4073) -> q_gen_4142 (q_gen_4091, q_gen_4118) -> q_gen_4142 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4085) -> q_gen_4085 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4133, q_gen_4134, q_gen_4143, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4143) -> q_gen_4143 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4143 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4143) -> q_gen_4143 (q_gen_4134, q_gen_4133) -> q_gen_4143 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 36 ; () -> mem([h, cons(h, t)]) -> 34 ; () -> reverse([nil, nil]) -> 34 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 37 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 37 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 35 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 35 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 35 ; (mem([e, nil])) -> BOT -> 35 } Sat witness: Yes: ((append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]), { _hr -> nil ; _ir -> cons(b, cons(b, nil)) ; h1 -> a ; t1 -> nil }) ------------------------------------------- Step 65, which took 1.027944 s (model generation: 1.024774, model checking: 0.003170): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 (q_gen_4067, q_gen_4085) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4085) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4132, q_gen_4133, q_gen_4134, q_gen_4145, q_gen_4160, q_gen_4194}, Q_f={q_gen_4064}, Delta= { (q_gen_4134, q_gen_4133) -> q_gen_4133 (q_gen_4145, q_gen_4133) -> q_gen_4133 () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4145 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4160) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4132, q_gen_4064) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4160) -> q_gen_4064 (q_gen_4194, q_gen_4096, q_gen_4132, q_gen_4064) -> q_gen_4064 (q_gen_4145, q_gen_4133) -> q_gen_4064 () -> q_gen_4064 () -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4133) -> q_gen_4096 (q_gen_4145, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 (q_gen_4145, q_gen_4133) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 (q_gen_4134, q_gen_4133) -> q_gen_4132 (q_gen_4145, q_gen_4133) -> q_gen_4132 (q_gen_4194, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4160 (q_gen_4194, q_gen_4096, q_gen_4132, q_gen_4160) -> q_gen_4160 (q_gen_4134, q_gen_4133) -> q_gen_4160 () -> q_gen_4194 () -> q_gen_4194 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 36 ; () -> mem([h, cons(h, t)]) -> 35 ; () -> reverse([nil, nil]) -> 35 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 37 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 37 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 35 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 38 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 36 ; (mem([e, nil])) -> BOT -> 36 } Sat witness: Yes: ((mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]), { e -> b ; h -> a ; t -> cons(a, cons(b, cons(a, nil))) }) ------------------------------------------- Step 66, which took 1.044200 s (model generation: 1.042248, model checking: 0.001952): Model: |_ { append -> {{{ Q={q_gen_4068, q_gen_4073, q_gen_4074, q_gen_4075, q_gen_4076, q_gen_4090, q_gen_4091, q_gen_4123, q_gen_4124, q_gen_4125, q_gen_4126, q_gen_4127, q_gen_4128, q_gen_4129, q_gen_4130, q_gen_4206}, Q_f={q_gen_4068}, Delta= { (q_gen_4091, q_gen_4090) -> q_gen_4090 () -> q_gen_4090 () -> q_gen_4091 () -> q_gen_4091 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4073 () -> q_gen_4073 (q_gen_4091, q_gen_4090) -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4074 () -> q_gen_4074 () -> q_gen_4074 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 (q_gen_4091, q_gen_4090) -> q_gen_4075 () -> q_gen_4075 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4076 () -> q_gen_4206 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4068) -> q_gen_4068 (q_gen_4130, q_gen_4129, q_gen_4128, q_gen_4127, q_gen_4126, q_gen_4125, q_gen_4124, q_gen_4123) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4068 () -> q_gen_4068 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4123 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 (q_gen_4091, q_gen_4090) -> q_gen_4124 () -> q_gen_4124 () -> q_gen_4124 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4125 (q_gen_4091, q_gen_4090) -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 () -> q_gen_4126 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4076, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4206, q_gen_4075, q_gen_4074, q_gen_4073) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4127 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4128 () -> q_gen_4128 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 (q_gen_4091, q_gen_4090) -> q_gen_4129 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 () -> q_gen_4130 } Datatype: Convolution form: complete }}} ; mem -> {{{ Q={q_gen_4065, q_gen_4066, q_gen_4067, q_gen_4070, q_gen_4071, q_gen_4077, q_gen_4085, q_gen_4105}, Q_f={q_gen_4065}, Delta= { () -> q_gen_4066 () -> q_gen_4067 (q_gen_4067, q_gen_4066) -> q_gen_4070 (q_gen_4067, q_gen_4070) -> q_gen_4070 (q_gen_4067, q_gen_4085) -> q_gen_4070 () -> q_gen_4071 (q_gen_4067, q_gen_4105) -> q_gen_4085 (q_gen_4071, q_gen_4070) -> q_gen_4085 (q_gen_4071, q_gen_4085) -> q_gen_4085 (q_gen_4071, q_gen_4066) -> q_gen_4105 (q_gen_4071, q_gen_4105) -> q_gen_4105 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4066) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4071, q_gen_4105) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4065 (q_gen_4067, q_gen_4070) -> q_gen_4065 (q_gen_4067, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4105) -> q_gen_4065 (q_gen_4071, q_gen_4070) -> q_gen_4065 (q_gen_4071, q_gen_4085) -> q_gen_4065 (q_gen_4067, q_gen_4066) -> q_gen_4077 (q_gen_4067, q_gen_4070) -> q_gen_4077 () -> q_gen_4077 (q_gen_4071, q_gen_4066) -> q_gen_4077 (q_gen_4071, q_gen_4105) -> q_gen_4077 () -> q_gen_4077 } Datatype: Convolution form: complete }}} ; reverse -> {{{ Q={q_gen_4064, q_gen_4095, q_gen_4096, q_gen_4097, q_gen_4110, q_gen_4111, q_gen_4133, q_gen_4134, q_gen_4144, q_gen_4161}, Q_f={q_gen_4064}, Delta= { () -> q_gen_4133 () -> q_gen_4134 () -> q_gen_4134 (q_gen_4134, q_gen_4133) -> q_gen_4161 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4096, q_gen_4095, q_gen_4144) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4110, q_gen_4064) -> q_gen_4064 (q_gen_4097, q_gen_4111, q_gen_4110, q_gen_4144) -> q_gen_4064 (q_gen_4134, q_gen_4161) -> q_gen_4064 () -> q_gen_4064 (q_gen_4134, q_gen_4133) -> q_gen_4095 () -> q_gen_4095 (q_gen_4134, q_gen_4161) -> q_gen_4096 (q_gen_4134, q_gen_4133) -> q_gen_4096 (q_gen_4134, q_gen_4161) -> q_gen_4096 () -> q_gen_4096 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4097 () -> q_gen_4110 (q_gen_4134, q_gen_4133) -> q_gen_4111 () -> q_gen_4111 (q_gen_4097, q_gen_4096, q_gen_4110, q_gen_4064) -> q_gen_4144 (q_gen_4097, q_gen_4096, q_gen_4110, q_gen_4144) -> q_gen_4144 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4064) -> q_gen_4144 (q_gen_4097, q_gen_4111, q_gen_4095, q_gen_4144) -> q_gen_4144 (q_gen_4134, q_gen_4133) -> q_gen_4144 } Datatype: Convolution form: complete }}} } -- Equality automata are defined for: {eq_elt, eq_eltlist} _| Teacher's answer: New clause system: { () -> append([nil, l2, l2]) -> 36 ; () -> mem([h, cons(h, t)]) -> 35 ; () -> reverse([nil, nil]) -> 35 ; (append([_hr, cons(h1, nil), _ir]) /\ reverse([t1, _hr])) -> reverse([cons(h1, t1), _ir]) -> 37 ; (append([t1, l2, _cr])) -> append([cons(h1, t1), l2, cons(h1, _cr)]) -> 37 ; (mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]) -> 38 ; (mem([e, t]) /\ not eq_elt([e, h])) -> mem([e, cons(h, t)]) -> 38 ; (mem([e, cons(h, t)]) /\ not eq_elt([e, h])) -> mem([e, t]) -> 36 ; (mem([e, nil])) -> BOT -> 36 } Sat witness: Yes: ((mem([e, l1]) /\ reverse([l1, _mr])) -> mem([e, _mr]), { _mr -> cons(b, cons(b, cons(b, nil))) ; e -> a ; l1 -> cons(a, nil) }) Total time: 30.000645 Reason for stopping: DontKnow. Stopped because: timeout