Determine if a grid contains another grid Challenge

Create a function takes in two 2-dimensional arrays of characters (or strings if the programming language does not have characters as a datatype) as inputs: a and b. If your language does not support these inputs, you may use any other standard one-byte variable.

Your task is to determine if b contains a. If this is so, return true. Otherwise, return false.

Sample Test Cases

a:

123
456
789

b:

123
456
789


should return true.

a:

code
golf

b:

thisis
code!!
golf!!
ohyeah


should return true.

a:

abcd
efgh
ijkl

b:

abcdef
ghijkl
mnopqr


should return false.

a:

abc
def

b:

1abc2
3def4
5ghi6


should return true

a:

ab
cd

b:

#ab##
##cd#


should return false

This is code-golf so least bytes wins.
Brachylog (v2), 4 bytes

s\s\


Try it online!

Most easily run as a full program, as usual for a decision-problem, with a specified as a command-line argument, b on standard input. The question asks for a function, and the program also works as a function, with b on the left, a on the right, and output via producing an exception if and only if the decision is  false.

Explanation

s\s\
s     a substring of rows of {the left input}
 \…\  assert rectangular; swap row and column operations
  s   a substring of &lt;s&gt;rows&lt;/s&gt; columns of {the above matrix}
      {implicit} assert that the result can be {the right input}


The "assert rectangular" is, obviously, pointless, as the question guarantees that already. The rest of the program does the grid-finding for us by identifying a substring of the rows and of the columns, i.e. a submatrix.

Meta-discussion

We've had a very similar question before; I'd expect most answers to one question to be modifiable into answers to the other. I think this is the neater version of it, though.