equal
deleted
inserted
replaced
617 |
617 |
618 (*The assumption rule A |- A*) |
618 (*The assumption rule A |- A*) |
619 fun assume raw_ct = |
619 fun assume raw_ct = |
620 let val Cterm {thy_ref, t = prop, T, maxidx, sorts} = adjust_maxidx raw_ct in |
620 let val Cterm {thy_ref, t = prop, T, maxidx, sorts} = adjust_maxidx raw_ct in |
621 if T <> propT then |
621 if T <> propT then |
622 raise THM ("assume: assumptions must have type prop", 0, []) |
622 raise THM ("assume: prop", 0, []) |
623 else if maxidx <> ~1 then |
623 else if maxidx <> ~1 then |
624 raise THM ("assume: assumptions may not contain schematic variables", maxidx, []) |
624 raise THM ("assume: variables", maxidx, []) |
625 else Thm {thy_ref = thy_ref, |
625 else Thm {thy_ref = thy_ref, |
626 der = Pt.infer_derivs' I (false, Pt.Hyp prop), |
626 der = Pt.infer_derivs' I (false, Pt.Hyp prop), |
627 maxidx = ~1, |
627 maxidx = ~1, |
628 shyps = sorts, |
628 shyps = sorts, |
629 hyps = [prop], |
629 hyps = [prop], |