Collective reasoning