Hi,

if you don't like stateful tactics, you should also have a look at the
library "DatatypeSimps". Moreover, it often helps me to turn off pretty
printing of case-expressions via

set_trace "pp_cases" 0

You need rewriting of the "list_CASE" and equality of chars. So, your
goal should also be solved via

SIMP_TAC std_ss [listTheory.list_case_def, stringTheory.CHR_11]

If you want it higher level use the string and list simpsets:

SIMP_TAC (list_ss++stringSimps.STRING_ss) []

or use the DatatypeSimps, which work for other types as well:

SIMP_TAC
(std_ss++stringSimps.STRING_ss++DatatypeSimps.type_rewrites_ss([``:'a
list``])) []

Thomas



On 04/11/14 04:31, Michael Norrish wrote:
> On 04/11/14 13:33, "f~鳓ぁぇ wrote:
>> Hi,
>> I want to prove a goal like this:
>>                                           `case "d" of "u" =>1 |"s" =>2|"d" 
>> =>3
>> |"p" =>4`
>> Is there a tactic which can match "d" with the branch "d" and then execute 
>> this
>> branch.
>     SIMP_TAC (srw_ss()) []
>
> or
>
>     SRW_TAC[][]
>
> should both work on this sort of goal.
>
> Michael
>
>
> ________________________________
>
> The information in this e-mail may be confidential and subject to legal 
> professional privilege and/or copyright. National ICT Australia Limited 
> accepts no liability for any damage caused by this email or its attachments.
>
> ------------------------------------------------------------------------------
> _______________________________________________
> hol-info mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/hol-info


------------------------------------------------------------------------------
_______________________________________________
hol-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to