Agnishom Chattopadhyay
Agnishom Chattopadhyay
  • 18
  • 5 627
Verified and Efficient Matching of Regular Expressions with Lookaround
This is the unofficial version of the talk accompanying the paper "Verified and Efficient Matching of Regular Expressions with Lookaround" by Agnishom Chattopadhyay, Angela W. Li and Konstantinos Mamouras, to be presented at CPP 2025.
==Abstract==
Regular expressions can be extended with lookarounds for contextual matching. This paper discusses a Coq formalization of the theory of regular expressions with lookarounds. We provide an efficient and purely functional algorithm for matching expressions with lookarounds and verify its correctness. The algorithm runs in time linear in both the size of the regular expression as well as the input string. Our experimental results provide empirical support to our complexity analysis. To the best of our knowledge, this is the first formalization of a linear-time matching algorithm for regular expressions with lookarounds.
================
Formalization: github.com/Agnishom/lregex
Paper: doi.org/10.1145/3703595.3705884
Some Other Relevant Works
1. Efficient Matching of Regular Expressions with Lookaround Assertions [Mamouras and Chattopadhyay, POPL'24]
2. Efficient Matching with Memoization for Regexes with Look-around and Atomic Grouping [Fujinami and Hasuo, ETAPS'24]
3. Linear Matching of JavaScript Regular Expressions [Barrière and Pit-Claudel, PLDI'24]
4. Lean Formalization of Extended Regular Expression Matching with Lookarounds [Zhuchko et al, CPP'24]
Some Other Relevant Digital Artifacts
1. github.com/epfl-systemf/RegElk
2. zenodo.org/records/10458317
3. github.com/ezhuchko/extended-regexes/tree/main
มุมมอง: 18

วีดีโอ

Verified Regular Expression Matching - Derivatives, NFAs and more
มุมมอง 452 หลายเดือนก่อน
00:00 - Intro 07:04 - Thompson NFAs 29:32 - Derivatives 44:30 - Marked Regular Expressions 1:07:00 - Outro This talk was presented in National Institute of Informatics, Tokyo as a part of the ERATO MMSD group seminar. Abstract Regular Expressions are a foundational element of the theory and practice of formal methods. In this talk, we will discuss three avenues towards the formalization of regu...
Regular Expressions with Lookarounds - Lightning Talk - Efficient Matching
มุมมอง 3011 หลายเดือนก่อน
Practical regular expressions are often extended with lookahead and lookbehind assertions. These constructs are used to refine when a match for a pattern occurs in the input text based on the surrounding context. Current implementation techniques for lookaround involve backtracking search, which can give rise to running time that is super-linear in the length of input text. In our work, we firs...
Matching Regular Expressions with Counting - NII Version
มุมมอง 54ปีที่แล้ว
This talk was presented in National Institute of Informatics, Tokyo as a part of the ERATO MMSD group seminar. Abstract Frequently in practice, regular expressions involve counting constraints for succinctness. For example, the regular expression aaa may be written as a{3}. This does not add any expressive power, but makes the expressions succinct. Traditionally, such constructs are handled (in...
Coq proofs with GitHub Copilot
มุมมอง 118ปีที่แล้ว
For embedding to my Quora answer at www.quora.com/What-are-the-major-obstacles-in-applying-large-language-models-to-mechanised-theorem-proving/answer/Agnishom-Chattopadhyay
Conversation with ChatGPT
มุมมอง 1292 ปีที่แล้ว
openai.com/blog/chatgpt/ See Also: A Conversation with text-davinci-002 th-cam.com/video/8jjoCrk7cX0/w-d-xo.html Chapters 00:00 - Creative Insults 01:02 - The Hero and The King 08:47 - Part 2 09:33 - Copyright Laws 10:45 - Jewelry Shop 12:50 - Navigation 14:30 - Music Videos 17:00 - Names 22:13 - Recipe 24:45 - Summary Music Credits "Loopster" Kevin MacLeod (incompetech.com) Licensed under Crea...
Hardware Accelerated Regular Expression Matching - COMP 600 Version
มุมมอง 862 ปีที่แล้ว
Regular expressions are a formalism used to specify patterns in strings. They are known for their applicability in text processing problems, but also appear in various other domains including network intrusion detection, malware analysis or describing sequences of amino acids. Searching texts for matches of regular expressions can be done using a variety of techniques, and we focus on the use o...
Conversation with text-davinci-002
มุมมอง 3592 ปีที่แล้ว
Fig Leaf Times Two by Kevin MacLeod is licensed under a Creative Commons Attribution 4.0 license. creativecommons.org/licenses/by/4.0/ Source: incompetech.com/music/royalty-free/index.html?isrc=USUAN1200096 Artist: incompetech.com/
Hardware Accelerated Regular Expression Matching - Lightning Talk - Intro and Preliminary Results
มุมมอง 902 ปีที่แล้ว
Regular expressions are a formalism used to specify patterns in strings. They are known for their applicability in text processing problems, but also appear in various other domains including network intrusion detection, malware analysis or describing sequences of amino acids. Searching texts for matches of regular expressions can be done using a variety of techniques, and we focus on the use o...
Tic-Tac-Toe with Haskell (Part II)
มุมมอง 1143 ปีที่แล้ว
Lecture 7 of 2021 COMP 311/544 Haskell Module in Rice University See agnishom.github.io/haskell-21/ for a list of useful resources Lecture Note: agnishom.github.io/haskell-21/lectures/lecture7 00:00 - Setup 30:28 - Agnishom starts talking
Lecture 5 of 2021 COMP 311/544 Haskell Module in Rice University
มุมมอง 743 ปีที่แล้ว
Other Monads (Maybe, List, State) See agnishom.github.io/haskell-21/ for a list of useful resources Lecture Note: agnishom.github.io/haskell-21/lectures/lecture5 00:00 - Setup 27:55 - Agnishom starts talking
Tic-Tac-Toe with Haskell (Part I)
มุมมอง 2073 ปีที่แล้ว
Lecture 6 of 2021 COMP 311/544 Haskell Module in Rice University See agnishom.github.io/haskell-21/ for a list of useful resources Lecture Note: agnishom.github.io/haskell-21/lectures/lecture6 00:00 - Setup 21:38 - Agnishom starts talking
Lecture 4 of 2021 COMP 311/544 Haskell Module in Rice University
มุมมอง 1093 ปีที่แล้ว
Functors, Applicative, IO, Do Notation See agnishom.github.io/haskell-21/ for a list of useful resources Lecture Note: agnishom.github.io/haskell-21/lectures/lecture4 00:00 - Setup 07:44 - Agnishom starts talking
Lecture 3 of 2021 COMP 311/544 Haskell Module in Rice University
มุมมอง 593 ปีที่แล้ว
folds (contd.), Debugging Tips, Modules, Algebraic Datatypes, Kinds, Typeclasses (Paramteric vs Ad-Hoc Polymorphism) See agnishom.github.io/haskell-21/ for a list of useful resources Lecture Note: agnishom.github.io/haskell-21/lectures/lecture3 00:00 - Setup 08:10 - Audible Haskell Content
Lecture 2 of 2021 COMP 311/544 Haskell Module in Rice University
มุมมอง 1103 ปีที่แล้ว
Function Composition, Lists, Laziness, fold See agnishom.github.io/haskell-21/ for a list of useful resources Lecture Note: agnishom.github.io/haskell-21/lectures/lecture2 00:00 - Setup 12:22 - Corky starts talking 23:29 - Agnishom starts talking
Lecture 1 of 2021 COMP 311/544 Haskell Module in Rice University
มุมมอง 3533 ปีที่แล้ว
Lecture 1 of 2021 COMP 311/544 Haskell Module in Rice University
A Formally Verified Monitor for Quantitative Temporal Logic (COMP 600 version)
มุมมอง 754 ปีที่แล้ว
A Formally Verified Monitor for Quantitative Temporal Logic (COMP 600 version)
ODE TO THE WEST WIND - A Literary Analysis
มุมมอง 3.6K10 ปีที่แล้ว
ODE TO THE WEST WIND - A Literary Analysis

ความคิดเห็น

  • @ngruhn
    @ngruhn ปีที่แล้ว

    pretty cool 👍

    • @agnishom
      @agnishom ปีที่แล้ว

      Did you find this video through Quora?

    • @ngruhn
      @ngruhn ปีที่แล้ว

      @@agnishom no Google actually. Searched for "github copilot coq"

  • @org.photonsphere
    @org.photonsphere 3 ปีที่แล้ว

    First speech (around 7:30): th-cam.com/video/8EPwcslUC1Y/w-d-xo.htmlm30s

  • @chovs
    @chovs 3 ปีที่แล้ว

    Haskell part starts at 46:22

    • @agnishom
      @agnishom 3 ปีที่แล้ว

      Thanks! I have updated the video description with the timestamp!

  • @andrewhudson3723
    @andrewhudson3723 3 ปีที่แล้ว

    lecture starts at 23:30

    • @agnishom
      @agnishom 3 ปีที่แล้ว

      Thanks, I have added this to the video description now

  • @itallstartedwhen
    @itallstartedwhen 3 ปีที่แล้ว

    List Comprehension is do notation but for lists 🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯🤯

    • @agnishom
      @agnishom 3 ปีที่แล้ว

      That is indeed true! You should check out the next lecture, or read the section on "The List Monad" here learnyouahaskell.com/a-fistful-of-monads#the-list-monad

  • @itallstartedwhen
    @itallstartedwhen 3 ปีที่แล้ว

    Is Trace really a collection ? Isn't Trace just a function type ?

    • @agnishom
      @agnishom 3 ปีที่แล้ว

      It is up to you how you view it. It can be considered a collection because it is essentially (isomorphic to) a doubly infinite list of things. Is it an efficient way to store things? Probably not. Functor is a mathematical abstraction that loosely corresponds to a notion of container types. This is a loose analogy. The definition of functor is not "something which looks like a container", because "looks like" is not really a rigorous way to define things. The actual definition of Functor is "a type constructor is a functor if it obeys the Functor Laws".

  • @itallstartedwhen
    @itallstartedwhen 3 ปีที่แล้ว

    Any recommended reads or resources to practice all things mentioned in this lecture. It was quite a lot of information in a very short span of time I must say, or wait, did I watch it on 2x. Anyhow, super enjoyable, super informative, best Haskell content I have come across as a beginner in the last 3-4 month of me learning it on my own. Thank you so much for posting about this on the Haskell SubReddit🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻

    • @agnishom
      @agnishom 3 ปีที่แล้ว

      I would recommend trying the assignment problems. github.com/JavaPLT/assignment-9/

    • @agnishom
      @agnishom 3 ปีที่แล้ว

      Thank you for your kind comments! I am glad you think it is a good lecture!

    • @itallstartedwhen
      @itallstartedwhen 3 ปีที่แล้ว

      Yes. I will start with the assignments tomorrow. Thanks again for this 🙏🙏🙏

    • @agnishom
      @agnishom 3 ปีที่แล้ว

      That sounds great. At the bottom of this page, there is a link labelled "Problemsets" which is also a good place to look for some problems. agnishom.github.io/PRGH17/ Also, if you would rather look at some slower paced content, take a look at nptel.ac.in/courses/106/106/106106137/