Yes a subset ! Sorry ! 
Yours didn't do exactly what i wanted but it helped a lot, as i didn't 
understand how i could also use judgments as guards in reduction relations. 
Thank you again :D
Beatriz Moreira

A quarta-feira, 3 de fevereiro de 2021 à(s) 22:17:50 UTC, Robby Findler 
escreveu:

> You mean it should be a subset, not a subsequence? (And yes, the example I 
> sent was one where I was guessing that mine did not do what you want!)
>
> Robby
>
>
> On Wed, Feb 3, 2021 at 4:14 PM Beatriz Moreira <[email protected]> 
> wrote:
>
>> My definition allows it to go backwards because for what im trying to do 
>> the order does not matter. So I evaluate the head of the sequence, and then 
>> recursively the tail.
>> I tested your example you gave me just now and it passed :D
>> Beatriz
>>
>> A quarta-feira, 3 de fevereiro de 2021 à(s) 18:41:53 UTC, Robby Findler 
>> escreveu:
>>
>>> Oh, I see -- you want (1 2 3) to be a subsequence of (1 4 2 4 3 4), for 
>>> example.
>>>
>>> But does your definition allow you to go "backwards"? Maybe you need a 
>>> helper judgment that captures "a subsequence that starts here"  and then 
>>> subsequence can try that one at each position?
>>>
>>> Robby
>>>
>>>
>>> On Wed, Feb 3, 2021 at 10:33 AM Beatriz Moreira <[email protected]> 
>>> wrote:
>>>
>>>> Yes, I had to make some adjustments to the judgement you sent me but 
>>>> this helped me a lot!
>>>> This was what I ended up using:
>>>>
>>>> (define-judgment-form L
>>>>   #:mode (subsequence I I)
>>>>   #:contract (subsequence (ts ...) (ts ...))
>>>>
>>>>   [----------------------------------------------
>>>>    (subsequence (ts_1 )
>>>>                 (ts_2 ... ts_1  ts_3 ...))]
>>>>   
>>>>   [(subsequence (ts_1 ...)
>>>>                 (ts_2 ... ts_3 ...))
>>>>    ----------------------------------------------
>>>>    (subsequence (ts_0 ts_1 ...)
>>>>                 (ts_2 ... ts_0 ts_3 ...))])
>>>>
>>>> Thank you so much! :D
>>>>
>>>> A sábado, 30 de janeiro de 2021 à(s) 20:08:17 UTC, Robby Findler 
>>>> escreveu:
>>>>
>>>>> Is this what you have in mind? 
>>>>>
>>>>> #lang racket
>>>>> (require redex/reduction-semantics)
>>>>>
>>>>> (define-language L
>>>>>   (ts ::= variable number))
>>>>>
>>>>> (define-judgment-form L
>>>>>   #:mode (subsequence I I)
>>>>>   #:contract (subsequence (ts ...) (ts ...))
>>>>>
>>>>>   [----------------------------------------------
>>>>>    (subsequence (ts_1 ...)
>>>>>                 (ts_2 ... ts_1 ... ts_3 ...))])
>>>>>
>>>>> (test-judgment-holds
>>>>>  (subsequence () (1 2 3 4)))
>>>>>
>>>>> (test-judgment-holds
>>>>>  (subsequence (1) (1 2 3 4)))
>>>>>
>>>>> (test-judgment-holds
>>>>>  (subsequence (2) (1 2 3 4)))
>>>>>
>>>>> (test-judgment-holds
>>>>>  (subsequence (1 2) (1 2 3 4)))
>>>>>
>>>>> (test-judgment-holds
>>>>>  (subsequence (2 3) (1 2 3 4)))
>>>>>
>>>>> (test-judgment-holds
>>>>>  (subsequence (3 4) (1 2 3 4)))
>>>>>
>>>>> (test-judgment-holds
>>>>>  (subsequence (2 3 4) (1 2 3 4)))
>>>>>
>>>>> (test-judgment-holds
>>>>>  (subsequence (1 2 3) (1 2 3 4)))
>>>>>
>>>>> (test-judgment-holds
>>>>>  (subsequence (1 2 3 4) (1 2 3 4)))
>>>>>
>>>>> (test-equal
>>>>>  (judgment-holds (subsequence (5) (1 2 3 4))) #f)
>>>>>
>>>>> (test-equal
>>>>>  (judgment-holds (subsequence (3 2) (1 2 3 4))) #f)
>>>>>
>>>>> (test-equal
>>>>>  (judgment-holds (subsequence (4 1) (1 2 3 4))) #f)
>>>>>
>>>>> (test-results)
>>>>>
>>>>>
>>>>>
>>>>> On Sat, Jan 30, 2021 at 11:46 AM Beatriz Moreira <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi !
>>>>>> I have a reduction relation where I have to match a pattern *ts* to 
>>>>>> two sequences, where the first one contains the other one. What I tried 
>>>>>> to 
>>>>>> do was something like this: 
>>>>>> 1st seq:  (*ts_all1 ... ts ts_all2 ...*)     2nd seq:   (*ts_x1 ... 
>>>>>> ts ts_x2 ...*),  where *ts_x* *⊆ **ts_all*.
>>>>>> But the problem is that with the pattern matching is that *ts_x1* 
>>>>>> doesn't match all elements of *ts_all1* .
>>>>>> I'm trying to use side conditions but i can't seem to get it right :c 
>>>>>> .
>>>>>> Any advice?
>>>>>>
>>>>>> Thank you , Beatriz :) 
>>>>>>
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "Racket Users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to [email protected].
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/racket-users/1f9a3f57-787b-43b9-9fb4-560e425c1cdan%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/racket-users/1f9a3f57-787b-43b9-9fb4-560e425c1cdan%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Racket Users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>>
>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/racket-users/0c6555d8-9c60-4371-9369-30bd93e3027fn%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/racket-users/0c6555d8-9c60-4371-9369-30bd93e3027fn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Racket Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/racket-users/a2db87c0-ccfa-4a2f-86ed-ce9aac0fe37en%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/racket-users/a2db87c0-ccfa-4a2f-86ed-ce9aac0fe37en%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/96aea2ed-4c83-454a-888e-fb605d69687dn%40googlegroups.com.

Reply via email to