epfl-lara / lisa

Proof assistant based on first-order logic and set theory
Apache License 2.0
33 stars 18 forks source link

Assumption handling (or lack thereof) in presence of imports #161

Open sankalpgambhir opened 1 year ago

sankalpgambhir commented 1 year ago

Certain tactics and steps rely on external imports, but these operations will not produce sequents with assumptions. Consider for example:

// over yonder
val ab = have(A |- B) by Magic
val bc = have(B |- C) by Magic

// new running proof
assume(D)
have(A |- C) by Cut(ab, bc)
// internally this becomes:
// have({D, A} |- C) by Cut(ab, bc)
// which obviously fails :( 

This was found in the case of instantiating definitions, where a definition cannot be instantiated in the presence of assumptions as it is a weakened sequent.

Solutions:

Is this a bug? Should I mark it as such? I think it is :thinking: