rule, synthesize