| from __future__ import annotations | |
| import re | |
| LEADS=(r'^\s*prove\s+or\s+disprove\s+',r'^\s*prove\s+',r'^\s*disprove\s+',r'^\s*resolve\s+',r'^\s*investigate\s+',r'^\s*study\s+') | |
| def search_subject(problem,max_words=12): | |
| s=problem.strip().split(';',1)[0].split('\n',1)[0].strip() | |
| for pat in LEADS: | |
| ns=re.sub(pat,'',s,flags=re.I) | |
| if ns!=s:s=ns;break | |
| s=re.sub(r'^the\s+','',s,flags=re.I).strip(' .:');w=s.split();return ' '.join(w[:max_words]) if w else problem.strip()[:120] | |