How I'd do it:
1. Define reasoning (hard)
2. Inspect the system to see if this is what it's doing (hard)
Conclusion: too hard, so until I get better I don't know if any given thing is reasoning.
What "very smart people have proposed":
1. Look at something I've only seen people-I-assume-to-be reasoning do
2. Run the system and see if it can do this
3. If satisfied or in the dictionary business, redefine reasoning
4. goto 1